我遇到了两位小数 30.63
和 0.15
的乘法问题。我的计算器说它应该会产生 4.60
。
$commission = bcmul(30.63, 0.15,2);
此结果为 4.59
。
根据我的阅读,bcmul意味着使用十进制数字?
非常感谢,
答案 0 :(得分:0)
从$scale
参数the documentation到bcmul
:
此可选参数用于设置结果中小数位后面的位数。
这实际上意味着在使用数字时,数字将被舍入向下(或向上为负数),例如
> echo bcmul(0.99, 1, 1);
0.9
对于您的值,30.63 * 0.15等于4.5945。提供$scale
值为2意味着您已经报告了4.59。
我不确定你为什么期待4.60,除非你特别期望结果四舍五入上来。