excel公式,关于四舍六入,奇进偶舍的修改

2024-12-19 21:49:47
推荐回答(4个)
回答1:

  传公式,不然打字麻烦。


  你公式不全,只有3位数的,没判断。


  =IF(A1<1,ROUND(A1,3)-IF(AND(MOD(INT(A1*1000),2)=0,INT(A1*10000)-INT(A1*1000)*10=5,A1*10000-INT(A1*10000)=0),0.001,0),(ROUND(A1/10^IFERROR(FIND(".",A1)-1,LEN(A1)),3)-IF(AND(MOD(INT(A1/10^(IFERROR(FIND(".",A1)-1,LEN(A1))-3)),2)=0,INT(A1/10^(IFERROR(FIND(".",A1)-1,LEN(A1))-4))-INT(A1/10^(IFERROR(FIND(".",A1)-1,LEN(A1))-3))*10=5,A1*10000-INT(A1*10000)=0),0.001,0))*10^IFERROR(FIND(".",A1)-1,LEN(A1)))



回答2:

你这也太复杂了,这样就行了:
这两个公式都能用,第一个短一点,第二个逻辑好懂一点,随便选一个复制过去就行:
=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 《数值修约规则与极限数值的表示和判定》。

回答3:

我觉得你的方法有点复杂,条件判断的有点多,其实只有修约位的数字是偶数,并且它的下一位是5且再后面没数值的情况不能四舍五入(如0.0645),其他情况都可以四舍五入的,所以把这种唯一的不同于四舍五入的情况挑出来单独运算就行
公式:=IF(EVEN(A1*1000)-A1*1000=0.5,A1*1000-0.5,ROUND(A1*1000,0))/1000
此公式是精确到千分位,如果需要精确到其他位数,直接按需要倍数调到个位,最后再除以倍数就行

回答4:

把公式单独贴出来,把要求写清楚,放那么个图我放大到200%都看不清楚