PHP舍入到两位小数

时间:2018-08-27 10:37:08

标签: php

我有一个功能,可以进行部分付款。

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(显示结果)

3 个答案:

答案 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;