PHP 数学(编号)


PHP math (numbering)

$temp目前为 6。但是变量结果每次都可以更改为不同的数字,因此它不是一个固定值。

反正对于这个$temp * 1.1666666,结果会6.99999996。由于我使用了地板功能,因此它将向下舍入为 6。

当值大于>*.49999时,有什么方法可以保持在*.5而不是*

示例:6.511111116.789481236.9747124

预期输出:6.5

示例:6.499999996.124124316.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 );
    }
?>

希望这就是你想要的。