如果有人問你,Excel c2單元格中顯示的數(shù)字是48,那么d2=c2×1.36的值是多少,你一定會脫口而出:65.28,其實不然。若48是你輸入的,則“回答正確”;如果48是某個公式計算出來的結果,那么實際計算結果則可能是65.90。為了便于說明問題,還是從一個與工資計算有關的實例說起。
假設Excel工作表中有d2=356.68、e2=128.12,將d2與e2之和乘以0.1,將結果四舍五入取整,再將結果乘以1.36,取兩位小數(shù)得到最終結果。 有人認為,可以事先選中f2單元格,使用“格式”選單下的“單元格”命令,將f2的小數(shù)位數(shù)設置為零。然后將(d2+e2)×0.1的結果放入f2單元格,即可四舍五入顯示計算結果的整數(shù)部分。再將g2單元格的小數(shù)位數(shù)設成兩位,最后把f2×1.36的結果存入其中就可以了。從表面上看,上述方法沒有什么問題。在f2單元格的小數(shù)位數(shù)為零的條件下,(d2+e2)×0.1經(jīng)四舍五入后的結果就是48。接下去卻出了問題,因為f2×1.36的計算結果是65.90,根本不是48×1.36的正確結果65.28,其中65.90是(d2+e2)×0.1未經(jīng)四舍五入直接乘以1.36的結果。 筆者經(jīng)研究發(fā)現(xiàn),在“單元格格式→數(shù)字”選項卡中設置的“小數(shù)位數(shù)”,只能將單元格數(shù)值的顯示結果四舍五入,并不能對所存放的數(shù)值進行四舍五入。換句話說,數(shù)值的顯示結果與單元格的“小數(shù)位數(shù)”設置有關,而顯示結果和實際存放(即參與運算)的內容并不完全一致,如果不注意這個問題,計算工資等敏感數(shù)據(jù)就會出現(xiàn)錯誤。如上例中,f2單元格內的數(shù)值雖然顯示為48,但實際存放的卻是48.45,自然得出了48.45×1.36=65.90的結果(按計算要求應為65.28)。 要解決此問題,不能用設置“小數(shù)位數(shù)”的方法四舍五入。對本文所述的問題,只需在g2單元格內輸入公式“=(round((d2+e2)×0.1,0))×1.36”,就可以按要求計算出正確結果65.28。式中的round函數(shù)按指定位數(shù)對“(d2+e2)×0.1”進行四舍五入,函數(shù)中的參數(shù)0將“(d2+e2)×0.1”四舍五入到最接近的整數(shù)。由于四舍五入是一種應用很廣的運算規(guī)則,筆者將round函數(shù)的使用方法簡單介紹如下: round函數(shù)的語法為“round(number,num_digits)”,其中“number” 為需要四舍五入的數(shù)字或運算公式(其計算結果必須是數(shù)字)。num_digits指定四舍五入的位數(shù),如果num_digits大于0,則四舍五入到指定的小數(shù)位,例如round(2.15,1)等于 2.2;如果num_digits等于0,則將數(shù)字四舍五入到整數(shù),例如round(315.68,0)等于316;如果 num_digits 小于 0,則在小數(shù)點左側的指定位數(shù)進行四舍五入,例如round(21.5,-1)等于20。 本文所述實例均在Excel 2000中驗證通過。 |
|