PHP 關於浮點數運算的問題

2021-09-01 14:43:58 字數 351 閱讀 1575

<?php

$x = 0.5;

echo $x -= 0.1;echo "

";echo $x -= 0.1;echo "

";echo $x -= 0.1;echo "

";echo $x -= 0.1;echo "

";echo $x -= 0.1;echo "

";今天在做一些相關的浮點型資料運算時,出現  2.7755575615629e-17  的問題。當然具體例項不是這樣的!

google 了半天,發現是浮點型資料運算時的,內部二進位制資料轉化時出的,問題!2.7755575615629e-17 出表示的是0。

可用round()函式,處理。

php 浮點數運算

php r echo 0.1 0.7 0.8 true false 了解浮點運算的都不難理解以上 執行時會得到false 這是因為很多的10進製數都不能精確的轉成2進製,或如果要精確轉換的話需要的二進位制數太長,會捨棄掉末尾部分,只儲存一定的精度。比如0.1 十進位制 0.0001100 1100 ...

PHP浮點數運算精度問題

最近有客戶反應 訂單金額總是不準確,總是相隔一分錢。檢查相關 邏輯都是正確的,就是運用了四則運算。大概推測問題可能出在浮點計算丟失精度。在 php程式設計師雷雪松的部落格 中寫過一篇關於js精度不準確的文章 js中浮點數運算不精準 下面php程式設計師雷雪松詳細的介紹一下如何解決php浮點數運算精度...

浮點數運算

浮點數運算的公式 n m re n代表浮點數 m代表尾數 r代表基數 e代表指數 所謂浮點數就是類似我們高中學的科學計數法 比如 1000 就表示為 1.0 103 那麼浮點型計算就是兩個用科學計數法表示的數之間進行的計算 例如 1.0 102 1.19 103 該如何計算 步驟 1.對階 所謂對階...