PHP浮點精度問題

2020-07-16 10:06:04
使用php+ - * /計算浮點數的時候,可能會遇到一些計算結果錯誤的問題,如下:

<?php
    echo intval(0.58 * 100); //輸出57
?>

解決辦法

<?php
    echo bcmul(0.58, 100); //輸出58
?>

● php提供了BC高精確度函數庫處理此問題

● bcadd — 將兩個高精度數位相加

● bcsub — 將兩個高精度數位相減

● bcmul — 將兩個高精度數位相乘

● bcdiv — 將兩個高精度數位相除

● bccomp — 比較兩個高精度數位,返回-1, 0, 1

● bcmod — 求高精度數位餘數

● bcpow — 求高精度數位乘方

● bcpowmod — 求高精度數位乘方求模,數論裡非常常用

● bcscale — 設定預設小數點位數,相當於就是Linux bc中的」scale=」

● bcsqrt — 求高精度數位平方根

以上就是PHP浮點精度問題的詳細內容,更多請關注TW511.COM其它相關文章!