想知道在Excel上使用Round()函数时应用了哪种舍入方法? 当您选择将列格式化为具有两个小数位的货币时,也会有区别。 我需要在我正在编写的C#程序中模拟Excel的结果。
答案 0 :(得分:3)
警告:Excel和Excel-VBA使用两种不同的算法。
在Excel中:
=ROUND(0.5,0)
返回1.
=ROUND(1.5,0)
返回2.
在Excel-VBA中:
Print Round(0.5,0)
0
Print Round(1.5,0)
2
VBA使用银行家的舍入:将0.5舍入到最近的偶数整数。请注意,如果Round
到更多小数位,则相同的逻辑将转移到低位小数位。例如,Round(0.05,1)
在Excel-VBA中返回零(而在Excel中为0.1)。
这是我最不喜欢的VBA功能之一。它与Excel不一致使它更糟糕。
数字格式对此问题没有任何影响。