如何在excel中实现四舍六入五留双?
发布网友
发布时间:2022-04-26 07:49
我来回答
共4个回答
热心网友
时间:2022-06-25 12:03
方法:
1、打开EXCEL表格,在数据单元格后一列输入:=IF(RIGHT(B1,1)="5",B1,ROUND(B1,1))
就可以得到四舍五入的值 ,如图。
2、之后,其他的单元格向下填充即可。
热心网友
时间:2022-06-25 12:03
要用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))
不防验证一下!
热心网友
时间:2022-06-25 12:04
实际上没有这么复杂。
这两个公式都能用,第一个短一点,第二个逻辑好懂一点,随便选一个复制过去就行:
=ROUND(A1,B1)-(ROUNDUP(MOD(ABS(A1)*10^(B1+1),20),12)=5)/10^B1*((A1>0)*2-1)
=IF(ROUNDUP(MOD(ABS(A1)*10^(B1+1),20),12)=5,ROUNDDOWN(A1,B1),ROUND(A1,B1))
这两个都是excel里把"A1"进行四舍六入保留到"B1"位的函数,针对正负数都通用。
公式里的"B1"可以改成数字使用,想保留几位小数就改成几,保留到十位百位就用"-1""-2"。
注:修约规则参考:GB/T 8170-2008 《数值修约规则与极限数值的表示和判定》。
热心网友
时间:2022-06-25 12:04
=IF(RIGHT(B1,1)="5",B1,ROUND(B1,1))