避免大整数科学计数法

Posted gelu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了避免大整数科学计数法相关的知识,希望对你有一定的参考价值。

php 是没有bigint的,超过一定长度其实是当做float类型处理的。在表示的时候,会使用科学计数法。

演示code

在客户端执行:

php -r "echo 20123456789123456789;"

输出:
2.0123456789123E+19

那么怎么避免这种情况呢?用number_format().

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

输出:
20123456789123457024
很明显最后2位不对。

如前面说的,int超过长度,已经益处,此时数据已经部分残缺了。没有解决办法。处理方式就是表创建该字段不应该用数字,而应该用字符串。

参考资料

  1. 手册-类型
  2. PHP怎么将超长数值转换为字符串?



以上是关于避免大整数科学计数法的主要内容,如果未能解决你的问题,请参考以下文章

在 Java 中使用 xstream 转换为 xml 时如何避免大双精度数的科学记数法

使用包含十进制数据类型的数据库时如何避免科学记数法

pandas读取csv文件时避免科学计数法(xxxe+09)

如何将一串大数转换为整数?

如何避免mysql的double自动转为科学计数法表示

如何避免mysql的double自动转为科学计数法表示