四舍五入到最接近的分数(一半,四分之一等)
因此,我需要创建以下函数,但是如果不进行复杂的数学运算,我的头将无法想到PHP中的任何可能性。
- 轮 到最接近的十进制(1.81 = 1.90,1.89 = 1.90,1.85 = 1.90)
- 四舍五入到最接近的小数点(1.81 = 1.80,1.89 = 1.80,1.85 = 1.80)
- 轮 到最接近的X.25 / X.50 / X.75 /×.00(1.81 = 2,1.32 = 1.50)
- 轮 至最接近的X.25 / X.50 / X.75 /×.00(1.81 = 1.75,1.32 = 1.25)
- 轮 到最接近的X.50 / 1(1.23 = 1.50,1.83 = 2)
- 轮 至最接近的X.50 / 1(1.23 = 1,2,1.83 = 1.50)
我已经在Google上搜索了2个小时,而出现的唯一内容就是Excel论坛。一些简单的PHP行是否可能?
回答:
既然你正在寻找 四分之三
(.00
,.25
,.50
,.75
),乘你的电话号码由4轮最接近的整数根据需要(floor
如果向下,ceil
如果向上),然后除以4。
1.32,最接近的第四位 :
1.32 * 4 = 5.28
底(5.28)= 5.00
5.00 / 4 =
相同的原理适用于任何其他组分,例如 三分之二 或 八分
(.0
,.125
,.25
,.375
,.5
,.625
,.75
,.875
)。例如:
1.77,最接近的八分之一 :
1.77 * 8 = 14.16
ceil(14.16)= 15.00
15.00 / 8 =
只是为了好玩,您可以编写如下函数:
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
以上是 四舍五入到最接近的分数(一半,四分之一等) 的全部内容, 来源链接: utcz.com/qa/425240.html