您好我有以下问题:
当我把(1 + 7/100)放在红宝石中时它会给出1.
这很奇怪,因为通常这就是我计算Excel增加7%的方法。
但是当我把(1 + 7.0 / 100)它给我1.07时,这是我预期的正确答案。
为什么ruby这样做?你如何在ruby的计算中解决这个问题?
答案 0 :(得分:2)
这与舍入无关。
Ruby在float上的分割方式与在整数上的分割方式不同。
如果除以整数,则总会得到整数结果。
如果使用浮点数(或整数和浮点数的混合)进行除法,则总会得到浮点结果。
也要记住您的操作顺序。 Ruby会在处理添加之前处理该部门。
7/100 = 0
所以1+0 = 1
7.0/100 = 0.07
所以1+0.07 = 1.07