在我的MS Excel中,我对不同数据类型的舍入操作有不同的行为:
如果是单身:
? Application.Round(6.575!, 2)
6.57
Run Code Online (Sandbox Code Playgroud)
如果是Double:
? Application.Round(6.575#, 2)
6.58
Run Code Online (Sandbox Code Playgroud)
有人知道为什么吗?
更新:@paxdiablo给出了一个很好的答案,所以只是为了在这里重现它:
在单精度中,6.575是二进制表示的0 10000001 101001 0011 0011 0011 0011,或6.57499980926513671875.这轮到6.57
在双精度中,增加了更多的0011,它们的重量足以使数量略大于6.575(6.57500000000000017763568394003),因此它将达到6.58