我正在使用bcdivPHP 中的函数来计算一些东西,但结果与应有的不同。这是示例代码:
$val1 = 599.60;
$val2 = 60;
var_dump(bcdiv($val1, $val2, 0));
// result string(1) "9"
// should be "10"
var_dump(bcdiv($val1, $val2, 2));
// result string(4) "9.99"
// result ok, but
var_dump(bcdiv($val1, $val2, 1));
// result string(4) "9.9"
// should be "10" too
第一次的结果var_dump对我来说很奇怪,因为它应该是10而不是9。
其他BCMath函数 的结果相同:
$val1 = 599.99;
$val2 = 1;
var_dump(bcmul($val1, $val2, 0));
// result string(3) "599"
// should be "600"
var_dump(bcadd($val1, $val2, 0));
// result string(3) "600"
// should be "601"
var_dump(bcsub($val1, $val2, 0));
// result string(3) "598"
// should be "599"
我的应用程序中有很多浮点计算,现在我不知道如何正确处理它们,正常的数学计算有浮点问题,但从bc 数学计算不是我应该使用的最好的东西。
所以,这是我的问题:
当您考虑常规数学舍入规则时,考虑到 BCMath 结果是错误的,我该如何处理浮点计算?
您(其他 PHP 程序员)如何计算浮点数?在我的应用程序中无法将它们转换为整数。
你觉得php-decimal怎么样?
慕的地8271018
犯罪嫌疑人X