Formatando casas decimais de um número float no Ruby

É incrível como às vezes perdemos tempo tentando resolver problemas tão pequenos. Hoje eu precisava fazer umas divisões com números float, e em alguns casos o resultado era uma dízima periódica. Como esse dado vai para um XML que será exportado para outro sistema, ele impedia o XML de ser validado, exatamente por conter trocentos dígitos após a vírgula. Pois é, essa questão ridícula me tomou muito tempo hoje.

A solução é muito simples: para formatar um float com duas casas decimais no Ruby, utilize:

format("%.2f", 1.3412)

O resultado será: "1.34" (Sim, uma String. Use to_f caso deseje converter novamente para float)

# Edit @ 04/out/08

Conforme comentário do Carlos Brando, existe uma forma ainda melhor de fazer isso:

1.3412.round(2)

Mais importante do que usar uma boa linguagem é ter profissionais competentes ao nosso redor. Valeu, Carlos!