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超过长度,已经益处,此时数据已经部分残缺了。没有解决办法。处理方式就是表建立该字段不该该用数字,而应该用字符串。字符串