[ruby-it] operazioni in virgola mobile con ruby
Daniele Alessandri
suppakilla a gmail.com
Gio 27 Dic 2007 08:52:06 CET
On Dec 26, 2007 8:52 PM, antonio guerra <guerrantonio a libero.it> wrote:
> Ma printf() e' solo un comando formattazione per la stampa di un numero
> arrotondato?
Non credo ci sia un modo built-in, probabilmente ci sarà qualcosa in
qualche ext ma del resto le classi aperte di Ruby sono belle e se ti
serve solo quello basta sfruttarle :-)
class Float
def round(precision = nil)
if precision.nil? then
super()
else
if precision.is_a? Integer and precision > 0 then
decimals = 10 ** precision
(self * decimals).round / decimals.to_f
else
raise ArgumentError.new("Argument must be a positive integer")
end
end
end
end
irb(main):015:0> f = 34.3456
=> 34.3456
irb(main):016:0> f.round
=> 34
irb(main):017:0> f.round(3)
=> 34.346
irb(main):018:0> f.round(2)
=> 34.35
--
Daniele Alessandri
http://www.clorophilla.net/blog/
Maggiori informazioni sulla lista
Ml