加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP:bigint数字出错

发布时间:2020-12-13 22:53:00 所属栏目:PHP教程 来源:网络整理
导读:我有一个奇怪的错误.看代码 $val1 = pow(2,64); $val2 = $val1 - 1; echo number_format($val1,'','') . "br/"; echo number_format($val2,'') . "br/"; 它的输出 1844674407370955161618446744073709551616 为什么$val2的值为18446744073709551616,必须是18
我有一个奇怪的错误.看代码

$val1 = pow(2,64);
    $val2 = $val1 - 1;
    echo number_format($val1,'','') . "<br/>";
    echo number_format($val2,'') . "<br/>";

它的输出

18446744073709551616
18446744073709551616

为什么$val2的值为18446744073709551616,必须是18446744073709551615?

解决方法

这是因为$val1变为浮动,浮动精度不高.看看 Float precision只看手动地板的例子((0.1 0.7)* 10)应该是8但是在我的电脑上它也会返回7(如手册)

如果你想使用这么大的数字,你应该使用专用的PHP库或BCMath

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读