前段时间碰到一个很头疼的问题,就是大于12位的数字在PHP中,会自动转成科学计数法表示。 比如 1234567891234 显示为 1.23456789123E+12 , 最后只能在计算出大数之后,立即用 sprintf(‘%1.0f’, $number) 来格式化。

奇怪的是,在我的Arch Linux上却不会自动转换, 只出现在生产机上, 郁闷ing. 上网搜了下, 有不少和我遇到相同问题的:

PHP大整数输出成科学计数法问题

解决方法: 在PHP配置文件 php.ini 中, 有一行 precision = 14 , 一般*nix上是14,windows上是12; 不过以防万一, 以后编码 但凡遇到12位以上的数字,都用sprintf格式化.