1.824999999999999.round(2)
# => 1.82
1.82499999999999999.round(2)
# => 1.83
Run Code Online (Sandbox Code Playgroud)
我不明白为什么第一种情况的结果是1.82和后者的结果1.83.我希望的结果是1.82两种情况.
众所周知,计算机中的浮点数有错误.请注意,您拥有的两个数字都接近1.825.在您的第一种情况下,该数字足够小,可以区分1.825.
1.824999999999999
# => 1.824999999999999
Run Code Online (Sandbox Code Playgroud)
在第二种情况下,有足够的9s使得值足够接近,可以完全被认为1.825:
1.82499999999999999
# => 1.825
Run Code Online (Sandbox Code Playgroud)
然后,当你申请时round,你得到1.83.
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |