雖然四捨六入五成雙是比較公平的數值處理規則,但一般在做發票計算都是以四捨五入做計算,
如果和這個規則不同常會發生廠商或客戶間的帳款計算有誤差。
因此若要解決這個問題,可以在尚未存入之前就先使用javascript或php先做處理。
javascript可用Math.round()
php可用round()做預先處理。
php另外有提供進階的四捨六入的處理
float round ( float $val
[, int $precision
= 0 [, int $mode
= PHP_ROUND_HALF_UP ]] )
mode參數的運用若前碼為1,2,3,4不進位6,7,8,9進位規則不變但若為5時依下列規則進位
mode的選項有
PHP_ROUND_HALF_UP:5直接進位
PHP_ROUND_HALF_DOWN:5直接不進位
PHP_ROUND_HALF_EVEN:5時若前碼為奇數則進位成雙數否則不進位
PHP_ROUND_HALF_ODD:
5時若前碼為偶數則進位成奇數否則不進位