Sort of a quick question. I'm writing:
puts "%.3f %.4f %.5f" % [3.998877, 3.998877, 3.998877]
and get the following output:
3.999 3.9989 3.99888
sprintf simply rounds the numbers. How do I restrict that rounding?
>> 3.998877.to_s[/^\d+\.\d{3}/].to_f
=> 3.998
>> 3.998877.to_s[/^\d+\.\d{4}/].to_f
=> 3.9988
>> def truncN f, digits
>> t = 10.0 ** digits
>> "%.#{digits}f" % ((f * t).truncate / t)
>> end
=> nil
>> n
=> 1.11181111
>> "%.3f" % n
=> "1.112"
>> truncN n, 3
=> "1.111"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With