首頁  >  文章  >  後端開發  >  PHP浮點精度問題

PHP浮點精度問題

藏色散人
藏色散人轉載
2019-11-18 14:31:232846瀏覽

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

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

解決方法

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

推薦:《PHP教學

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

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

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

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

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

● bccomp — 比較兩個高精準度數字,回傳-1, 0, 1

● bcmod — 求高精準度數位餘數

● bcpow — 求高精準度數位乘方

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

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

● bcsqrt — 求高精準度數字平方根

以上是PHP浮點精度問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除