繁体   English   中英

PHP number_format返回错误的数字

[英]PHP number_format returning incorrect number

目前,我有一个19位长的数字,当我尝试将其打印出来时,它给了我科学的记号,这正是我不需要的,因为这是一个特定的ID而不是一个数字。

我已经通过使用number_format()来抵消了这一点,但是由于处理的数字和我正在执行的处理量很大,所以使用了大数位,加载时间增加了,最后四位数字也不正确。 我的环境有限,因此可能无法加载其他模块,我最好的选择是什么?

仅举一个例子:

$cid = 8162315223029015401;
$cid1 = sprintf($cid);
$cid2 = number_format($cid, 0, '.', '');
echo gettype($cid);
echo $cid1;
echo $cid2;

>> double
>> 8.162315223029E+18
>> 8162315223029015552

提前致谢!

谢谢大家,问题是x32系统上的最大长度。 有什么方法可以最大化PHP_INT_MAX?

使用字符串; $cid = "8162315223029015401";

使用sprintf:

$cid = 8162315223029015401;
$cid1 = sprintf("%.8f", $cid);
$cid2 = number_format($cid, 0, '.', '');
echo gettype($cid) . PHP_EOL;
echo $cid1 . PHP_EOL;
echo $cid2 . PHP_EOL;

输出:

integer
8162315223029015552.00000000
8162315223029015552

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM