银行家在Excel中的舍入功能

Гро*_*ный 7 .net excel

这是一个众所周知的问题,默认情况下,.NET使用Banker的舍入,X.5舍入到最接近的偶数.另一方面,Excel使用算术舍入,X.5总是四舍五入,就像我们大多数人在学校教过.

是否可以使用公式在Excel中执行银行家舍入?

Sco*_*ner 7

使用此公式:

=IF(AND(ISEVEN(A1*10^0),MOD(A1*10^0,1)<=0.5),ROUNDDOWN(A1,0),ROUND(A1,0))
Run Code Online (Sandbox Code Playgroud)

替换所有0,其中有4个,具有所需舍入的意义.

或者您可以创建自己的UDF以使用VBA Round,这是Banker的舍入:

Function BankerRound(rng As Double, sig As Integer) As Double

    BankerRound = Round(rng, sig)
End Function
Run Code Online (Sandbox Code Playgroud)

然后它只是:

=BankerRound(A1,0)
Run Code Online (Sandbox Code Playgroud)