PHP 四舍五入到小数点 2 个问题



我有一个函数,可以对一些付款求和。

function get_payment() {
return 1439.60 + 1439.60 + 1439.60;
}
$a = get_payment();
var_export($a);
//I GET: $a = 4318.7999999999993;

现在我试图四舍五入到2个小数点但没有成功

$b = round($a, 2);
var_export($b);
//I GET: $b = 4318.8000000000002;

我想让FLOAT 类型中的4318.80 与其他值进行比较。

我不想使用number_format(显示结果(

$b = number_format((float)$a, 2, '.', '');这将使$b商店变得圆润$a

我认为问题出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

因为你不想用number_format,你可以试试bcdiv

$b=bcdiv($a, 1, 2);
echo $b;

最新更新