我正尝试将价格四舍五入以除去所有价格总和中不需要的小数。以下是屏幕截图,例如
因此,我需要调整价格以从总数中删除.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;
有什么建议吗?
答案 0 :(得分:0)
您正在做的是杂耍类型。
请注意,number_format
返回字符串。
您正在将该字符串添加到整数(或稍后浮动),因此php隐式将该字符串转换为int / float。
您可能想做的是(可能)在浮点数/整数上进行计算,最后,当您想要显示它时,请使用number_format
。
我建议对类型进行一些阅读。
This将是一个好的开始。