$temp
目前是6.但是变量结果每次都可以更改为不同的数字,因此它不是固定值。
无论如何,对于此$temp * 1.1666666
,结果将为6.99999996
。由于我使用了floor函数,因此它将向下舍入为6。
如果价值超过>*.49999
,它会保留在*.5
而不是*
吗?
示例:6.51111111
,6.78948123
,6.9747124
预期输出 6.5
示例:6.49999999
,6.12412431
,6.33452361
预期输出: 6
请注意,$ temp值将永远在变化..谢谢你!
答案 0 :(得分:5)
使用round($number, 1)
。这将四舍五入到最接近的小数点。
$number = round(.1666666 * $temp, 1);
如果你想要四舍五入到最接近的一半,你可以这样做:
function round_to_half($num)
{
if($num >= ($half = ($ceil = ceil($num))- 0.5) + 0.25) return $ceil;
else if($num < $half - 0.25) return floor($num);
else return $half;
}
$number = round_to_half(.1666666 * $temp);
答案 1 :(得分:0)
试试这段代码......
<?php
$temp = 6.94444;
echo myRound($temp);
function myRound($temp)
{
$frac = $temp - floor($temp);
$frac = ($frac >= .5) ? .5 : 0;
return ( floor($temp) + $frac );
}
?>
希望这就是你想要的。