php 中的十进制乘法

Decimal multiplication in php

我在计算两位小数 30.630.15 时遇到问题。我的计算器说结果应该是 4.60.

$commission = bcmul(30.63, 0.15,2);

结果是4.59

据我了解,bcmul 是用来处理十进制数的吗?

非常感谢,

$scale 参数的 the documentationbcmul:

This optional parameter is used to set the number of digits after the decimal place in the result.

这实质上意味着该数字在使用时将被舍入 向下 (或向上舍入为负数),例如

> echo bcmul(0.99, 1, 1);
0.9

对于您的值,30.63 * 0.15 等于 4.5945。提供 $scale 值 2 意味着您得到 4.59,正如您报告的那样。

我不确定您为什么期望 4.60,除非您特别期望结果四舍五入 up