编程语言
首页 > 编程语言> > PHP:bigint数字出错

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