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!


Poderia avaliar este artigo, por favor?

1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (Nenhum voto)
Loading ... Loading ...

Posts relacionados

  • http://danieldocki.com/ Daniel Docki

    Hmmm, to aprendendo C# na faculdade e para float funciona assim tbm %.2f, se colocar somente %f, ele vai colocar tudo depois da virgula

  • http://danieldocki.com/ Daniel Docki

    Hmmm, to aprendendo C# na faculdade e para float funciona assim tbm %.2f, se colocar somente %f, ele vai colocar tudo depois da virgula

  • http://www.nomedojogo.com/ Carlos Brando

    Se você estiver no Rails, pode usar:

    1.3412.round(2)

  • http://www.nomedojogo.com Carlos Brando

    Se você estiver no Rails, pode usar:

    1.3412.round(2)