1

$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 值会不断变化……谢谢!

4

2 回答 2

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);
于 2012-05-02T01:50:59.500 回答
0

试试这个代码...

<?php 

    $temp = 6.94444;
    echo myRound($temp);

   function myRound($temp)
    {
        $frac = $temp - floor($temp);
        $frac = ($frac >= .5) ? .5 : 0;
        return ( floor($temp) + $frac );
    }

?>

希望这是你想要的。

于 2012-05-02T06:04:55.373 回答