11.3.07

Problema rúbico do dia: formatando números

A primeira impressão de quase todo mundo para quem tenho mostrado o Ruby é a mesma: "puxa, como é fácil!", "nossa, como é conciso", "só isso de código?". Só flores, até que surge aquele probleminha bobo que se está acostumado a resolver em outra linguagem, e pronto. Uma das principais falhas da linguagem (sua falta de documentação organizada) salta aos olhos.
O problema do dia é: como formatar um número?
O desenvolvedor Java médio está familiarizado com os NumberFormatters da vida, e vai certamente procurar por algum mecanismo similar no Ruby. Em vão. O negócio, neste caso, funciona como no C: a formatação tem que ser feita em uma representação String do número, ou nada feito:

meu_numero = 1.234465
puts meu_numero # vai sempre imprimir o número sem formatação
puts "%.2f" % meu_numero # => 1.23

Em tempo: a lib facets inclui uma maneira elegante de formatar números:

meu_numero = 1.234465
puts meu_numero.round_at(2) # => 1.23

Muito mais limpo. Aliás, o Facets inclui maneiras elegantes de resolver muitos outros pequenos problemas, para quem não tiver problemas em depender de libs "não core"...

Nenhum comentário: