因为你正在寻找四分之一(.00,.25,.50,.75),所以将你的数字乘以4,根据需要舍入到最接近的整数(如果下降,如果是上限,则舍弃),然后除以4。
1.32,下降到最接近的第四:
1.32 * 4 = 5.28
floor(5.28) = 5.00
5.00 / 4 = 1.25
相同的原则适用于任何其他分数,例如三分之二或八分之一(.0,.125,.25,.375,.5,.625,.75,.875)。例如:
1.77,最多八分
1.77 * 8 = 14.16
ceil(14.16) = 15.00
15.00 / 8 = 1.875
只是为了好玩,你可以写一个这样的功能:
function floorToFraction($number, $denominator = 1)
{
$x = $number * $denominator;
$x = floor($x);
$x = $x / $denominator;
return $x;
}
echo floorToFraction(1.82); // 1
echo floorToFraction(1.82, 2); // 1.5
echo floorToFraction(1.82, 3); // 1.6666666666667
echo floorToFraction(1.82, 4); // 1.75
echo floorToFraction(1.82, 9); // 1.7777777777778
echo floorToFraction(1.82, 25); // 1.8