php 是沒有bigint的,超過必定長度實際上是當作float類型處理的。在表示的時候,會使用科學計數法。php
在客戶端執行:segmentfault
php -r "echo 20123456789123456789;"
輸出:
2.0123456789123E+19.net
那麼怎麼避免這種狀況呢?用number_format().code
php -r "echo number_format(20123456789123456789,0,'.','');"
輸出:
20123456789123457024
很明顯最後2位不對。orm
如前面說的,int超過長度,已經益處,此時數據已經部分殘缺了。沒有解決辦法。處理方式就是表建立該字段不該該用數字,而應該用字符串。字符串