$temp
目前为 6。但是变量结果每次都可以更改为不同的数字,因此它不是一个固定值。
反正对于这个$temp * 1.1666666
,结果会6.99999996
。由于我使用了地板功能,因此它将向下舍入为 6。
当值大于>*.49999
时,有什么方法可以保持在*.5
而不是*
?
示例:6.51111111
、6.78948123
、6.9747124
预期输出:6.5
示例:6.49999999
、6.12412431
、6.33452361
预期输出: 6
请注意,$temp值将不断变化。谢谢!
使用 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);
试试这段代码...
<?php
$temp = 6.94444;
echo myRound($temp);
function myRound($temp)
{
$frac = $temp - floor($temp);
$frac = ($frac >= .5) ? .5 : 0;
return ( floor($temp) + $frac );
}
?>
希望这就是你想要的。