:::| 目前位置圖示目前位置:首頁圖示回首頁 | 主功能頁圖示相關問答
mysql四捨六入問題

[日期]:2018/03/05  [瀏覽人數]:505

雖然四捨六入五成雙是比較公平的數值處理規則,但一般在做發票計算都是以四捨五入做計算,

如果和這個規則不同常會發生廠商或客戶間的帳款計算有誤差。

因此若要解決這個問題,可以在尚未存入之前就先使用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時若前碼為偶數則進位成奇數否則不進位