Excel如何用函数做到小数点后逢9进1

在用Excel做一个报表,出现一点小问题:想要保留小数点后两位,方法是小数点后第三位是0—8的话不四舍五入,只有当小数点后第三位是9的时候小数点后第二位加1,比如:
123.45078=123.45
123.45678=123.45
123.45878=123.45

123.45978=123.46
请问应该用怎样的函数来实现,谢谢赐教。
三位朋友回答的可真快,呵呵,谢谢你们,你们的算法都能实现功能,能不能教我一下你们列出的函数的意思,稍微解说一下可以吗,我数学很差,看不懂,嘻嘻,分数再加100分,谢谢各位。

数据在A1,在B1输入公式=round(a1-0.004,2)
ROUND()是4舍5入函数,后面的2的意思是保留2位小数,由于要从小数点后第3位0—8不四舍五入,9才4舍5入,就需用变通的方法来实现这个目的,你想想看小数点后面第3位最大的不能进位的数是8,要使它不进位,就必需要小于5,所以要减去0.004来变通的达到这个目的。例:如果小数点后第3位是8,减去0.004后,那么就得到的是4,就不需要进位,如果小数点后第3位是9,减去0.004后,那么就得到的是5,还是可以进位。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-23
公式如下
=int(2.1+3.6)+int((2.1+3.6-int(2.1+3.6))/0.8)+mod(2.1+3.6-int(2.1+3.6),0.8)
如果2.1在a1单元格,3.6在b1单元格
c1单元格写入公式
=int(a1+b1)+int((a1+b1-int(a1+b1))/0.8)+mod(a1+b1-int(a1+b1),0.8)
当然如果c1是a1+b1的和值,在d1输入公式那公式则更短一些
=int(c1)+int((c1-int(c1))/0.8)+mod(c1-int(c1),0.8)
第2个回答  2008-11-27
比如A1是数值,在B1输入公式

=IF(MID(A1,SEARCH(".",A1)+3,1)+0>8,FLOOR(A1,0.01)+0.01,FLOOR(A1,0.01))

其他单元格向下填充。

说明:MID(A1,SEARCH(".",A1)+3,1)+0

+0是为了使MID(A1,SEARCH(".",A1)+3,1)+0变成数字

或者用二楼的方法:

=FLOOR(int(A1*1000+1)/1000,0.01)
第3个回答  2008-11-27
八舍九入
=INT(A1*100+0.1)/100
五舍六入(取小数2位)
=INT(A1*100+0.4)/100
七舍八入(取小数3位)
=INT(A1*1000+0.2)/1000

INT(number)
Number 需要进行向下舍入取整的实数。
例如:=INT(8.9) 将 8.9 向下舍入到最接近的整数 (8)
(A1*100+0.1)/100 这个为数学计算,记住就可以了
第4个回答  2008-11-30
szjcyxt 的公式最简洁
=ROUNDDOWN(A1+0.001,2)
将需要转换的数值加大0.001,然后靠近零值,向下(绝对值减小的方向)舍入数字。
相似回答