0

我对圆形方法有疑问。当我对像 1.876 这样的数字进行四舍五入时,它只给我 1.8,我需要 1.80,我使用 round(2)。

我的功能是这样的:

@number.attr = (((@number1.to_f*number2.to_f)/100.0)).round(2).to_s
4

2 回答 2

1

Round 不能这样做,因为 1.8 是标准浮点数,但 1.80 不是标准浮点数。

irb(main)> 1.80.to_f
=> 1.8

解决方案是如果“。”后面只有 1 个数字,则将结果字符串与零连接。

于 2013-07-01T20:12:20.557 回答
0
1.9.3-p194 :001 > sprintf("%.2f", 1.8)
# => "1.80" 
1.9.3-p194 :002 > sprintf("%.2f", 1.876)
# => "1.88"
于 2013-07-02T07:52:44.630 回答