如何将数字保留两位小数?

14

我想要任何圆形的物品,比如这个:

(5.101 * 100).round / 100.0

输出结果应该像这样:

5.10

不要这样做:

5.1

我该如何在Ruby中实现这个?

2个回答

16

有几种方法,但我更喜欢使用字符串的%(格式)运算符:

'%.2f' % [(5.101 * 100).round / 100.0] # => "5.10"

Kernel的sprintf方法中有各种标志和修改器的说明文档。还有Kernel的printf,但正如我所说,我会选择%


你关心浮点数不准确吗?http://stackoverflow.com/q/10721739/128421 - the Tin Man
1
这很好,但是你的评论不适用于这个问题。 - the Tin Man
我明白了,这是关于四舍五入的数字。删除...谢谢。 - Anwar

8

我希望这能对您有所帮助。

2.0.0p195 :002 > (52.452158744).round(2)
=> 52.45 
2.0.0p195 :003 > (20.452158744).round(2)
=> 20.45 
2.0.0p195 :004 > (20.002555).round(2)
=> 20.0 
2.0.0p195 :005 > (20.012555).round(2)
=> 20.01 

(5.0).round(2) 返回 5.0 而不是 5.00 - Anwar
7
(5.0).round(2) 是用来进行四舍五入的,它不涉及格式化。这两个概念是不同的。 - the Tin Man

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接