PHP数学(编号)

时间:2012-05-02 01:48:32

标签: php math

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

无论如何,对于此$temp * 1.1666666,结果将为6.99999996。由于我使用了floor函数,因此它将向下舍入为6。

如果价值超过>*.49999,它会保留在*.5而不是*吗?

示例:6.511111116.789481236.9747124

预期输出 6.5

示例:6.499999996.124124316.33452361

预期输出: 6

请注意,$ temp值将永远在变化..谢谢你!

2 个答案:

答案 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 );
    }

?>

希望这就是你想要的。