程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php浮點數計算比較及取整不准確解決方法,取整不准確

php浮點數計算比較及取整不准確解決方法,取整不准確

編輯:關於PHP編程

php浮點數計算比較及取整不准確解決方法,取整不准確


php有意思的現象,應該是很多編程語言都會有這樣的現象。這個是因為計算機的本身對浮點數識別的問題.....

[php] view plaincopy  
  1. $f = 0.58;  
  2. var_dump(intval($f * 100 *100)); //結果5799  
  3. var_dump((float)($f * 100 *100)); //結果5800  
  4. echo (int)((0.1+0.7)*10);  //結果7  
  5. echo (float)((0.1+0.7)*10);  //結果8  

 

[php] view plaincopy  
  1. <?php  
  2. $a = 0.1;  
  3. $b = 0.7;  
  4. var_dump(($a + $b) == 0.8);  
  5. //打印出來的值居然為 boolean false  
[php] view plaincopy  
  1. <?php  
  2. $a = 0.1;  
  3. $b = 0.7;  
  4. var_dump(bcadd($a,$b,2) == 0.8);// bool true  

 

 

在浮點數計算的時候,切記不要把浮點數轉換成整形,否則會出現不可能預估的錯誤。

所以永遠不要相信浮點數結果精確到了最後一位,也永遠不要比較兩個浮點數是否相等。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved