bcmath操作数量非常少

时间:2017-11-03 16:13:37

标签: php bcmath

我想使用bcmath进行非常小数字的精确操作,但它失败了。我正在尝试计算加密货币价格,并认为bcmath比将float转换为整数更好

这有效:

php> echo number_format(0.000005 * 0.0025,10);

0.0000000125

这不起作用:

php> echo number_format(bcmul(0.000005,0.0025,10),10);

0.0000000000

php> echo number_format(bcadd(0.000005,0.00000025,10),10);

0.0000000000

bcmath是否有一些配置或这是正常行为?

1 个答案:

答案 0 :(得分:3)

您需要将bc *函数参数作为字符串传递。否则,它们将被解释为原生花车并受其限制。

echo bcmul('0.000005', '0.0025', 10), "\n";
echo number_format(bcmul('0.000005', '0.0025', 10), 10), "\n";

输出:

0.0000000125
0.0000000125