【发布时间】:2014-06-27 13:47:41
【问题描述】:
我目前正在尝试使用大小数进行数学运算。这工作正常:
<?php
$math = 99 + 0.0001;
echo $math;
?>
Output: 99.0001
但是,当我尝试添加超过 12 位小数的小数时,我没有收到预期的输出:
<?php
$math = 99 + 0.0000000000001;
echo $math;
?>
Output: 99
我怎样才能做到这一点,如果我加上一个小数点超过 12 位的小数,结果仍然会有准确的答案而不需要四舍五入?例如:
<?php
$math = 99 + 0.0000000000001;
echo $math;
?>
Output: 99.0000000000001
【问题讨论】:
-
使用BC Math
-
通过使用 sprint() 或调整 php.ini 中的精度设置来防止 PHP 在显示时舍入
-
@BiVOC - 不太确定这个问题与整数的最大大小有关,发帖人询问浮点值
-
你的申请是什么?如果你在做科学计算或类似 3D 几何的东西,那可能没关系 - 12 位有效数字绰绰有余,只需使用 printf 格式化。如果您准备牺牲速度换取精度,请使用 BC Math。