我有一张表(评论),用于存储评级的值(1-5)。我将使用这些评级的总和作为总分。
我在页面上有5颗星,根据整体价值显示或关闭。
通过计算所有评分的总价值除以表格中的评论数量,我得到总分。每次都给出低于5的值......很棒。
但是我现在遇到的问题是,例如,值可能是1.5或1.75。如果值为1.5,我将显示1颗半星形,并且将显示3颗半星形。我该如何确定该值是否为1.75以仅显示1.5值星。
希望这是有道理的。
答案 0 :(得分:1)
那应该是一个简单的数学问题,因为你的分辨率是1/2,乘以2,然后除以2,然后除以2:
round(x * 2) / 2
round((1.75) * 2) / 2 = 2
round((1.65) * 2) / 2 = 1.5
答案 1 :(得分:0)
<?php
$tests = array(-1, 0, 0.25, 0.5, 1, 1.5, 1.75, 3, 4.22, 6);
foreach($tests as $test)
echo "Initial rate = ".$test.", adjusted rate = ".adjustRate($test)."\n";
function adjustRate($val)
{
if ($val < 0)
return 0;
if ($val > 5)
return 5;
return floor($val * 2) / 2;
}
举个例子:
Initial rate = 1.75, adjusted rate = 1.5