1

$temp現在は6です。ただし、変数の結果は毎回異なる数値に変更される可能性があるため、固定値ではありません。

とにかく、この$temp * 1.1666666場合、結果はになります6.99999996。床関数を使用したため、6に切り捨てられます。

値がそれよりも大きい場合、代わりに>*.49999とどまる方法はありますか?*.5*

例:6.51111111、、6.789481236.9747124

期待される出力: 6.5

例:6.49999999、、6.124124316.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 に答える