星期三, 6月 14, 2006

Lotus Notes Formula 惱人的問題

最近在寫 Formula 時發現 @round 不太聽話,後來去扒 IBM 官方的文件才知道,R5.x、R6.x 都會有四捨五入的問題。

如果要做整數的四捨五入,要寫成 @round(@round(var;0.00001);1)

原因呢? 本人猜測,因為在公式數字運算的過程中會改變 var 的精確度,為了確保在 @round 之前的精確度和我們想像的一樣,所以先取一次 0.00001 的捨入值,再取一次整數的四捨五入。

Ex: 取小數點一位,則公式寫法為 @round(@round(var;0.00001);0.1)

ref. Formula @Round and LotusScript round do not work as expected or reliably in all cases FROM IBM

1 則留言:

飛天大鳥 提到...

取整數也會有同樣的問題
必需寫成 @Integer(@Round(0.5*0.367;0.00001))