PHP:bigint数字出错
作者:互联网
我有一个奇怪的错误.看代码
$val1 = pow(2, 64);
$val2 = $val1 - 1;
echo number_format($val1, 0, '', '') . "<br/>";
echo number_format($val2, 0, '', '') . "<br/>";
它的输出
18446744073709551616
18446744073709551616
为什么$val2的值为18446744073709551616,必须是18446744073709551615?
解决方法:
这是因为$val1变为浮动,浮动精度不高.看看Float precision只看手动地板的例子((0.1 0.7)* 10)应该是8但是在我的电脑上它也会返回7(如手册)
如果你想使用这么大的数字,你应该使用专用的PHP库或BCMath
标签:php,php-5-3 来源: https://codeday.me/bug/20190708/1404384.html