作为一个例子,我有类似的代码:
$r1 = 7.39999999999999;
$r2 = 10000;
echo bcmul($r1,$r2,100);
//returns 74000.0
echo ($r1*$r2);
//returns 74000.0
我希望它返回73999.9999999999而不是将其四舍五入。 有这样的公式或功能吗?
答案 0 :(得分:1)
文档http://php.net/manual/de/function.bcmul.php说:
left_operand:左操作数,作为字符串。
right_operand:右操作数,作为字符串。
所以请改用字符串:
$r1 = "7.39999999999999";
$r2 = "10000";
echo bcmul($r1,$r2,100);
作品。
或者,如果您从某处将这些变量(通过(字符串))转换为字符串。也许在这一步你可能会遇到一些舍入......
答案 1 :(得分:1)