excel 如何进行四舍六入五成双操作?
展开全部
从网上收来的,试过不错。
' “四舍六入五单双”自定义函数
' 函数形式 Round5(x,mm),返回值Round5为 Double 型
' X为操作数值,mm为保留小数位数
' 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
' “四舍六入五单双”自定义函数
' 函数形式 Round5(x,mm),返回值Round5为 Double 型
' X为操作数值,mm为保留小数位数
' 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
展开全部
这两个公式都能用,第一个短一点,第二个逻辑好懂一点,随便选一个复制过去就行:
=ROUND(A1,B1)-(ROUNDDOWN(MOD(ABS(A1)*10^(B1+1),20),11)=5)/10^B1*((A1>0)*2-1)
=IF(ROUNDDOWN(MOD(ABS(A1)*10^(B1+1),20),11)=5,ROUNDDOWN(A1,B1),ROUND(A1,B1))
这两个都是excel里把"A1"进行四舍六入保留到"B1"位的函数,针对正负数都通用。
公式里的"B1"可以改成数字使用,想保留几位小数就改成几,保留到十位百位就用"-1""-2"。
注:修约规则参考:GB/T 8170-2008 《数值修约规则与极限数值的表示和判定》。
=ROUND(A1,B1)-(ROUNDDOWN(MOD(ABS(A1)*10^(B1+1),20),11)=5)/10^B1*((A1>0)*2-1)
=IF(ROUNDDOWN(MOD(ABS(A1)*10^(B1+1),20),11)=5,ROUNDDOWN(A1,B1),ROUND(A1,B1))
这两个都是excel里把"A1"进行四舍六入保留到"B1"位的函数,针对正负数都通用。
公式里的"B1"可以改成数字使用,想保留几位小数就改成几,保留到十位百位就用"-1""-2"。
注:修约规则参考:GB/T 8170-2008 《数值修约规则与极限数值的表示和判定》。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
四舍六入在一些专业领域中用到,用到的小伙伴可以参考视频中的公式。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
能再说的具体点吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |