四舍五入价格以删除不需要的小数-PHP

时间:2018-08-06 12:05:54

标签: php laravel rounding

我正尝试将价格四舍五入以除去所有价格总和中不需要的小数。以下是屏幕截图,例如enter image description here

因此,我需要调整价格以从总数中删除.2个小数。我尝试使用以下解决方案,但它仅适用于一组价格,而不适用于其他价格。

 <?php

$values = [436.4,207.3,87.3,218.2,196.4,54.6];


$final_array = $val_array = []; $sum =  0;

foreach($values as $v){

    $sum += roundValue($v, 5);
    $val_array[] = roundValue($v, 5);
}


function roundValue($number, $denominator = 1)
    {
        $x = $number * $denominator;
        $x = floor($x);
        $x = $x / $denominator;
        return $x;
    }


$final_array[] = ['sum' => $sum, 'rates' => $val_array];

var_dump($final_array);

?>

请查看以下运行示例以了解第一组价格:first

请检查此运行示例以获取第二组价格:Second

甚至尝试了以下所有这些解决方案,但对我没有任何帮助:

round($number + 0.01) - 0.01;
round($number + 0.05) - 0.05;
floor($number*100)/100;

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您正在做的是杂耍类型。

请注意,number_format返回字符串。 您正在将该字符串添加到整数(或稍后浮动),因此php隐式将该字符串转换为int / float。

您可能想做的是(可能)在浮点数/整数上进行计算,最后,当您想要显示它时,请使用number_format

我建议对类型进行一些阅读。
This将是一个好的开始。