Question:
例如:修约为两位小数
0.3330→0.33 第三位小于5,第二位不加1
0.3340→0.33 第三位小于5,第二位不加1
0.3360→0.34 第三位小于5,第二位不加1
0.3350→0.34 第三位等于5,第四位为零,第二位是单数(奇数),第二位加1
0.3450→0.34 第三位等于5,第四位为零,第二位是双数(偶数),第二位不加1
0.3456→0.35 第三位等于5,第四位不为零,第二位加1
Answer:
=IF(MOD(INT(A1*1000),5)=0,IF(MOD(INT(A1*100),2)=0,INT(A1*100)/100,ROUND(A1,2)),ROUND(A1,2))
思路:首先,原数乘1000后取整数部分,用MOD判断其能否被5整除,将小数后第三位是5的另外列出来(当然是0的也被挑出来了)。
接着
(1)若不能,正常四舍五入即可。
(2)若能,则表示小数后第三位是0或5,这时我们判断原数乘100后取整能不能被2整除(这是判断小数点第二位是奇数还是偶数),若能,原数乘100后取整再除以100(这不就是取小数点后两位吗?),若不能,那么直接用ROUND函数。
引申:
修约为三位小数的公式
=IF(MOD(INT(A1*10000),5)=0,IF(MOD(INT(A1*1000),2)=0,INT(A1*1000)/1000,ROUND(A1,3)),ROUND(A1,3))
例如:修约为两位小数
0.3330→0.33 第三位小于5,第二位不加1
0.3340→0.33 第三位小于5,第二位不加1
0.3360→0.34 第三位小于5,第二位不加1
0.3350→0.34 第三位等于5,第四位为零,第二位是单数(奇数),第二位加1
0.3450→0.34 第三位等于5,第四位为零,第二位是双数(偶数),第二位不加1
0.3456→0.35 第三位等于5,第四位不为零,第二位加1
Answer:
=IF(MOD(INT(A1*1000),5)=0,IF(MOD(INT(A1*100),2)=0,INT(A1*100)/100,ROUND(A1,2)),ROUND(A1,2))
思路:首先,原数乘1000后取整数部分,用MOD判断其能否被5整除,将小数后第三位是5的另外列出来(当然是0的也被挑出来了)。
接着
(1)若不能,正常四舍五入即可。
(2)若能,则表示小数后第三位是0或5,这时我们判断原数乘100后取整能不能被2整除(这是判断小数点第二位是奇数还是偶数),若能,原数乘100后取整再除以100(这不就是取小数点后两位吗?),若不能,那么直接用ROUND函数。
引申:
修约为三位小数的公式
=IF(MOD(INT(A1*10000),5)=0,IF(MOD(INT(A1*1000),2)=0,INT(A1*1000)/1000,ROUND(A1,3)),ROUND(A1,3))