乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>四舍六入五成双</em>在<em>excel</em>里怎么设置

<em>四舍六入五成双</em>在<em>excel</em>里怎么设置

作者:乔山办公网日期:

返回目录:excel表格制作


=IF(MOD(INT(A1*1000),5)=0,IF(MOD(INT(A1*100),2)=0,INT(A1*100)/100,ROUND(A1,2)),ROUND(A1,2))

几位想得太复杂了,这样就可以了。
思路:首先,原数乘1000后取整数部分,用MOD判断其能否被5整除,将小数第三位是5的另外列出来(当然是0的也被挑出来了。
接着(1)若不能,正常四舍五入即可。
(2)若能,则表示小数后第三位是0或5,这时我们判断原数乘100后取整能不能被2整除(这是判断小数点第二位是奇数还是偶数),若能,原数乘100后取整再除以100(这不就是取小数点后两位吗?),若不能,那么直接用ROUND函数。

假设A1是通过多位小数的数值(这里4位以上),按四舍六入五成双保留二位小数。公式为:
=IF(MID(A1-INT(A1),5,1)*1>5,INT(A1)+MID(A1-INT(A1),1,4)+0.01,IF(MID(A1-INT(A1),5,1)*1<5,INT(A1)+MID(A1-INT(A1),1,4),IF(MID(A1-INT(A1),6,1)*1>0,INT(A1)+MID(A1-INT(A1),1,4)+0.01,IF(ISEVEN(MID(A1-INT(A1),4,1)*1),INT(A1)+MID(A1-INT(A1),1,4),INT(A1)+MID(A1-INT(A1),1,4)+0.01))))
最佳解答理论上copy公式是这样:1.保留到个位=IF(A1-INT(A1)0.5,ROUND(A1,0),IF(MOD(INT(A1),2)=0,INT(A1),ROUND(A1,0)))2.保留一位小数=IF(A2*10-INT(A2*10)0.5,ROUND(A2*10,0),IF(MOD(INT(A2*10),2)=0,INT(A2*10),ROUND(A2*10,0)))/103.保留两位小数=IF(A3*100-INT(A3*100)0.5,ROUND(A3*100,0),IF(MOD(INT(A3*100),2)=0,INT(A3*100),ROUND(A3*100,0)))/100依此类推,但还是要注意验算,因为计算机芯片的浮点运算问题或是EXCEL的运算问题,会造成“五成双”计算错误。

从网上收来的,试过不错。
' “四舍六入五单双”自定义函数

' 函数形式 Round5(x,mm),返回值Round5为 Double 型

' X为操作数值,mm为保留小数位e799bee5baa6e997aee7ad94e58685e5aeb9361

' mm为 Integer 型,mm = 0 表示取整数

Public Function round5(X As Double, mm As Integer) As Double

Dim Temp1, Temp2 As String

Temp1 = 1

If mm < 0 Then

Temp1 = 10 ^ Abs(mm)

X = X / Temp1

mm = 0

End If

If ((Int((Abs(X) - Int(Abs(X))) * 10 ^ mm) Mod 2) = 0 And (Abs(X) * 10 ^ mm - Int(Abs(X) * 10 ^ mm)) <= 0.5) And X <> Val(Round(Abs(X), mm) * Sgn(X)) Then

round5 = Val((Round(Abs(X) - 10 ^ (-mm) / 5, mm)))

Else

round5 = Val(Round(Abs(X), mm))

End If

round5 = Val(round5 * Sgn(X) * Temp1)

End Function

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网