PHP 浮點型轉整型的一個奇怪現象

原由

  最近經過一個學長的題了解php弱類型的時候,發現了一個奇怪的現象。php

正文

  主要問題在這樣一段代碼:測試

$c=(int)((0.1+$b)*10);

  當$b=0.6,0.8以及其餘值的時候都正常spa

  將關鍵代碼拆開分別檢測其類型,如上圖3d

  而當$b=0.7的時候code

  顯示浮點型的8轉成整型就成了7,這是怎麼回事?$b爲其餘數都是正常的,惟獨$b=0.7時不正常。blog

  因而接着測試一下直接將8.0轉成整型看看結果get

 

  結果是正常的,並無變成7class

  而後又試試將0.8乘以10再轉成整型,看看結果百度

  結果仍是正常的整型8im

  因而,再日後推一步,將0.8拆成0.7+0.1

  終於顯示不正常結果了,雖然還並不知道是什麼緣由

  而後接着測試,將0.1換成0.2

 

  結果是正常的……這就有點納悶了,難道只有8有影響嗎?

  最後再作一個測試,將0.8換成0.08,拆成0.07+0.01,最後乘以100

  結果竟然是正常的…很奇怪的現象,不知道是怎麼回事

最後

  後來在百度上大概搜了一下,查不到什麼資料,不過找到這樣的一篇文章------->【戳我

  這篇文章裏說的狀況跟我遇到的狀況差很少吧

  可能就是浮點型數字轉成整型的數字時會損失精度吧

  之後找到更好的解釋再補充…

相關文章
相關標籤/搜索