MS Excel货币舍入方法

时间:2011-06-19 22:37:02

标签: c# excel rounding currency

想知道在Excel上使用Round()函数时应用了哪种舍入方法? 当您选择将列格式化为具有两个小数位的货币时,也会有区别。 我需要在我正在编写的C#程序中模拟Excel的结果。

1 个答案:

答案 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不一致使它更糟糕。

数字格式对此问题没有任何影响。