我有一个功能,可以进行部分付款。
function get_payment() {
return 1439.60 + 1439.60 + 1439.60;
}
$a = get_payment();
var_export($a);
//I GET: $a = 4318.7999999999993;
现在我正试图四舍五入到小数点后两位,但是没有成功
$b = round($a, 2);
var_export($b);
//I GET: $b = 4318.8000000000002;
我想让FLOAT类型为4318.80 与其他值进行比较。
我不想使用number_format(显示结果)
答案 0 :(得分:2)
$b = number_format((float)$a, 2, '.', '');
这将使$ b的商店变成四舍五入的$ a
答案 1 :(得分:0)
我认为问题是var_export,出于某种原因,它忽略了“回合”
var_export($a);
// 4318.79999999999927240423858165740966796875
$b = round($a, 2);
var_export($b);
// 4318.8000000000001818989403545856475830078125
var_dump($b);
// float(4318.8)
echo $b;
//4318.8
答案 2 :(得分:0)
由于您不想使用number_format,因此可以尝试使用bcdiv
$b=bcdiv($a, 1, 2);
echo $b;