带有长小数的PHP数学

时间:2014-06-27 13:47:42

标签: php math decimal addition

我目前正在尝试使用大小数进行数学运算。这很好用:

<?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

1 个答案:

答案 0 :(得分:0)

快速谷歌搜索产生了this

  

浮点数的精度有限。虽然这取决于   在系统中,PHP通常使用IEEE 754双精度格式,   由于订单的舍入,这将产生最大的相对误差   1.11e-16。

我链接的页面有很多关于PHP中浮点数的有用信息,以及可以使用任意精度浮点数的库的链接。根据您的需要可能会有用。

编辑另外,正如Mark Ba​​ker在评论中所说,您可能还需要在printf()格式字符串中指定要打印的数字的精度。检查this page并查看数字5。