ruby 格式化输出 浮点数

ruby 格式化输出 浮点数

我有一个浮点数的结果:obj.account_amt/obj.msg_count=0.012145241587
如果现实出来不格式化的话,是不是太难看了点。
我开始是准备这样(obj.account_amt/obj.msg_count).slice(0,4)
觉得结果还不错,但是一想,要是结果是1242.1245847566这样的呢?不就完了。
最后的解决办法是 ‘%0.2f’ (obj.account_amt/obj.msg_count)就是想要的结果了。
希望对你们也有点帮助!
实际上我喜欢分数,更精确,看看有没有办法表示成分数~
引用:
原帖由 cnrefresh 于 2007-9-3 13:52 发表
我有一个浮点数的结果:obj.account_amt/obj.msg_count=0.012145241587
如果现实出来不格式化的话,是不是太难看了点。
我开始是准备这样(obj.account_amt/obj.msg_count).slice(0,4)
觉得结果还不错,但是一 ...
printf, sprintf,从C语言来的,不是特别喜欢用。哈哈。
呵呵,收获不少啊
刚才查看了一下rails的number help里面的源代码,跟楼主的用法一致

# Formats a +number+ with a level of +precision+.
# Example:
#  number_with_precision(111.2345) => 111.235
def number_with_precision(number, precision=3)
 sprintf("%01.#{precision}f", number)
end
我以前用的格式化浮点数的笨办法,
是计算税率的时候,对小数点后第三位进行四舍五入。
可以根据实际情况自行扩展

[Copy to clipboard] [ - ]
如果这样只能写成printf('%0.2f',(a/b.to_f));了
确实不太喜欢用printf
能不能用p或者puts输出呢
请大家指教