PHP-php能够表示的最大正数问题

PHP-php能够表示的最大正数问题

浮生未歇 发布于 2017-03-21 字数 326 浏览 1189 回复 3

碰到php表示很大的正数数字的时候 显示的数字写法不一致

已经修改过php.ini的选项precision = 14了

实例图片

已经修改过apache了,并且反复测试发现现实的内容 还是没有变化,仍然是2种方式显示数字,按理说这个时候应该都是科学技术法了

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

泛泛之交 2017-09-17 3 楼

可能是数据库里的trade_id字段类型造成的,你看一下存进去是否正常?

泛泛之交 2017-08-08 2 楼

涉及到大数或精度要求较高的小数,建议还是用字符串来存储吧。这样能避免一些意想不到的结果。数据库字段类型为字符串,php取出来不会和数据库中的记录不一致的。php本身是弱类型语言,把数当字符串操作也方便。

想挽留 2017-05-11 1 楼

在PHP中,大数实际上是浮点数,因此,要让浮点数显示成整数的形式有以下两种方式:
1、修改php.ini中的浮点数精度显示位,默认是12,即超过12位的浮点数才会用科学计数法显示(32位机器的行为是这样,但64位机器需要到20位才会用科学计数法表示):

precision = 12

你可以增大该值到你的应用所需要的最大精度,比如18。
2、以上方式治标不治本,毕竟生产环境的配置不能随意更改。刚才说了大数实际是浮点数,因此你只需要在大数显示时用sprintf格式化一下输出就可以了:

<?php
$a = 1234567890123456789;
$a = sprintf("%1.0f", $a); // 或sprintf("%.0f", $a)
echo $a;
?>