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))