如何使用PHP汇总价格

如何使用PHP汇总价格,php,Php,我想用PHP计算价格 e、 g.我有74.32英镑的价格,我想去衣柜5.00,如果价格高于5,那么9.00和我一直想要的小数.95 比如说 £74.32 would be round up to £75.95 £93.78 would be round up to £95.95 £67.87 would be round up to £69.95 我试图用下面的数字对价格进行取整,但我坚持将数字取整到5.00或9.00 $price = ceil($price) - "0.05";

我想用PHP计算价格

e、 g.我有74.32英镑的价格
,我想去衣柜
5.00
,如果价格高于5,那么
9.00
和我一直想要的小数
.95

比如说

£74.32 would be round up to £75.95

£93.78 would be round up to £95.95

£67.87 would be round up to £69.95
我试图用下面的数字对价格进行取整,但我坚持将数字取整到5.00或9.00

$price = ceil($price) - "0.05";
    return $price;

我如何做到这一点?

您可以尝试以下方法:

if ($price % 10 > 5) {
    $newPrice = floor($price / 10) * 10 + 9.95;
} else {
    $newPrice = floor($price / 10) * 10 + 5.95;
}

诀窍是在四舍五入之前将原始值相乘。如果函数不支持decimal digits参数,则这通常用于舍入到某些十进制数

$rounded = round($value * 100) / 100;
在这种情况下,系数为2/10(=0.2)

如果用相同的值除以它,则得到所需的极限

ceil(74.32 * 0.2) / 0.2 == 75
现在只需减去0.05:

$rounded = ceil($price * 0.2) / 0.2 - 0.05

可以说,这在数学上是不符合逻辑的,所以不会有一个内置函数来实现这一点。您必须自己编写一些东西才能实现此功能。这意味着这看起来更像是一个规范,而不是一个关于一些你无法工作的代码的帮助请求,我知道如何做到这一点。在PHP中如何将其四舍五入到最接近的5?谢谢,但是如果它高于5,我想将其四舍五入到10?这可能吗。。我不擅长数学。这是一个woocommerce函数@RiggsFolly,我必须将数据库中的所有价格汇总,我正在制作一个函数。谢谢,这正是我想要的。我的功能正常,没问题。有时,如何将需求转化为算法并不明显!另外,作为将来的参考,
$price%10
是什么意思?它是模数。如上所述,它是除法的剩余部分。所以这里剩余的价格除以10。
四舍五入($value*100)/100
相当于
四舍五入($value,2)就像我写的“如果函数不支持十进制数字参数”,我只是把它作为一个起点。
$rounded = ceil($price * 0.2) / 0.2 - 0.05