相关疑难解决方法(0)

VBA Double vs Single舍入

在我的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

math excel vba excel-vba

4
推荐指数
1
解决办法
4074
查看次数

标签 统计

excel ×1

excel-vba ×1

math ×1

vba ×1