我试图检查变量中的数字是否得到高于50或小于50的十进制数。然后取决于它是否为50或更高,将十进制数舍入为99,如果它更少,将它四舍五入到00.
这是我的一段代码:
public function roundPrice($price)
{
return round( (ceil($price) - 0.01), 2);
}
它使所有十进制数最多为99。我只需要50或更高的小数在99中四舍五入,49或更小的小数变为00。
我怎样才能在PHP中实现这一点?非常感谢,我被困在这里并且不知道如何做到这一点。
答案 0 :(得分:4)
关闭机会OP实际上是指小数位数,其中1.36变为1.00,而1.60变为1.99。
可能更优雅的解决方案,但这里有一个:
function roundPrice($price)
{
$intVal = intval($price);
if ($price - $intVal < .50) return (float)$intVal;
return $intVal + 0.99;
}
答案 1 :(得分:0)
我只需要在 99 中舍入50或更高的小数, 并且49或更少变为 00 。
奇怪 要求,但是:
public function roundPrice($price)
{
return $price >= 50 ? 99 : sprintf("%02s", 0);
}
对于大于或等于50
的数字,它会返回99
,而对于小于50
的数字,它会返回00
答案 2 :(得分:0)
你不是真正的四舍五入,所以直接谈论它。
public function roundPrice($price)
{
if($price >= 50)
{
return 99;
}
else
{
return 0;
}
}
你陈述的问题不能处理等于50的$ price。我假设正好50轮的价值达到99.
答案 3 :(得分:0)
如果它的值为50或以上,则修改函数以返回小数值,否则返回0。
public function roundPrice($price)
{
$decValue = round( (ceil($price) - 0.01), 2);
if ($decValue >= 50) return $decValue;
else return 0;
}
答案 4 :(得分:0)
我想你想要这个:
public function roundPrice($price) {
$p = round($price, 0);
if( ceil($price) == $p) {
return $p - 0.01;
}
return $p;
}
对于所有其他值,返回X.99表示值> = X.5和X.00。