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