如何在excel中实现四舍六入五留双?

如题所述

方法:

1、打开EXCEL表格,在数据单元格后一列输入:=IF(RIGHT(B1,1)="5",B1,ROUND(B1,1))

就可以得到四舍五入的值 ,如图。

2、之后,其他的单元格向下填充即可。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-19
要用EXCEL来实现,首先要了解其原理,如下所示:

四舍六入五留双规则

为了避免四舍五入规则造成的结果偏高,误差偏大的现象出现,一般采用四舍六入五留双规则。

四舍六入五留双规则的具体方法是:

(一)当尾数小于或等于4时,直接将尾数舍去。

例如将下列数字全部修约为四位有效数字,结果为:

0.53664——0.5366

10.2731——10.27

18.5049——18.50 0.58344——0.5834

16.4005——16.40

27.1829——27.18

(二)当尾数大于或等于6时,将尾数舍去并向前一位进位。

例如将下列数字全部修约为四位有效数字,结果为:

0.53666——0.5367

8.3176——8.318

16.7777——16.78 0.58387——0.5839

10.29501——10.30

21.0191——21.02

(三)当尾数为5,而尾数后面的数字均为0时,应看尾数“5”的前一位:若前一位数字此时为奇数,就应向前进一位;若前一位数字此时为偶数,则应将尾数舍去。数字“0”在此时应被视为偶数。

例如将下列数字全部修约为四位有效数字,结果为:

0.153050——0.1530

12.6450——12.64

18.2750——18.28 0.153750——0.1538

12.7350——12.74

21.845000——21.84

(四)当尾数为5,而尾数“5”的后面还有任何不是0的数字时,无论前一位在此时为奇数还是偶数,也无论“5”后面不为0的数字在哪一位上,都应向前进一位。

例如将下列数字全部修约为四位有效数字,结果为:

0.326552——0.3266

12.73507——12.74

21.84502——21.85 12.64501——12.65

18.27509——18.28

38.305000001——38.31

按照四舍六入五留双规则进行数字修约时,也应像四舍五入规则那样,一次性修约到指定的位数,不可以进行数次修约,否则得到的结果也有可能是错误的。例如将数字10.2749945001修约为四位有效数字时,应一步到位:10.2749945001——10.27(正确)。如果按照四舍六入五留双规则分步修约将得到错误结果:10.2749945001——10.274995——10.275——10.28(错误)。

其次假设我们保留小数点後两个有效数,在A1栏输入数据,B1栏输入如下公式即OK
=IF((MID(A1,(LEN(INT(A1))+4),1))="5",IF(LEN(A1)-LEN(INT(A1))>4,(ROUNDDOWN(A1,2)+0.01),(IF(MOD(MID(A1,(LEN(INT(A1))+3),1),2)=0,ROUNDDOWN(A1,2),(ROUNDDOWN(A1,2)+0.01)))),ROUND(A1,2))
不防验证一下!
第2个回答  2023-04-11
实际上没有这么复杂。
这两个公式都能用,第一个短一点,第二个逻辑好懂一点,随便选一个复制过去就行:
=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个回答  2011-08-09
=IF(RIGHT(B1,1)="5",B1,ROUND(B1,1))本回答被提问者和网友采纳
相似回答