Rounding off floating point numbers in Ruby
Problem:
If you want to round a floating point number off to two decimals, there is no standard method in Ruby that does it for you.
Solution:
The general solution is
(f * 10**d).round.to_f / 10**d
where f is the floating number and d is the number of decimals.
See my code sample for adding this functionality to the Float class.
Although the above works you should concider the reason you’re performing the rounding (or equivalent) operation. If it’s for presentation reasons only a better way might be to use a format string instead, and leave the original data intact.
Here’s an example where a representation (rounded_str) of a floating point number (f) is rounded to two decimals.
rounded_str = sprintf('%.2f', f)
No comments yet.