PHP避免大整數科學計數法

php 是沒有bigint的,超過必定長度實際上是當作float類型處理的。在表示的時候,會使用科學計數法。php

演示code

在客戶端執行:segmentfault

php -r "echo 20123456789123456789;"

輸出:
2.0123456789123E+19.net

那麼怎麼避免這種狀況呢?用number_format().code

php -r "echo number_format(20123456789123456789,0,'.','');"

輸出:
20123456789123457024
很明顯最後2位不對。orm

如前面說的,int超過長度,已經益處,此時數據已經部分殘缺了。沒有解決辦法。處理方式就是表建立該字段不該該用數字,而應該用字符串。字符串

參考資料

  1. 手冊-類型
  2. PHP怎麼將超長數值轉換爲字符串?
相關文章
相關標籤/搜索