PHP浮點精度問題

藏色散人
發布: 2023-04-07 20:04:02
轉載
2850 人瀏覽過

使用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中文網其他相關文章!

相關標籤:
php
來源:segmentfault.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板