2012-03-05 11 views
0

phpとMySQLを使用したウェブサイトの5つの製品レビューで作業しています。私の合計星を除いてすべてが素晴らしいです。 レビューが送信されると、 〜5つ星(no。5)の場合、各レビューの評価を合計し、レビュー数で除算しています。今、私は1、1.5、2、2.5などを取得する必要があり、時々私は3.66768748のようなものを得るでしょう。PHPで5つ星評価をつける

私は数字を四捨五入すると、もしそれがそれよりも大きければ、それは天井になります.5であればそれはそのままです.5未満であればそれは床になりますか?

これに使用できる組み込み関数はありますか?

ありがとうございます!

答えて

-1

phpはそのためのラウンド関数を示します。

http://php.net/manual/en/function.round.php

+2

で2つの

  • ラウンド
  • 分割により
  • デバイド総レビュー
  • 乗算によってレビューの合計を取ります'round()'がwに合わないと仮定すると、OPの質問を実際に読んでください彼らが求めている帽子。 – Amber

  • +0

    親愛なる、琥珀は彼が望むより多くの情報を提供できますか? – sandeep

    1

    次の関数は、ラウンド意志に最も近い方 - 次に低い整数、次に高い整数、又はそれらの間の中間点。

    function half_star_round($input) { 
        $frac = $input - floor($input); 
        if($frac < 0.25) { 
         return floor($input); 
        } else if($frac >= 0.75) { 
         return ceil($input); 
        } else { 
         return floor($input) + 0.5; 
        } 
    } 
    
    +0

    完了!どうもありがとうございます! –

    +0

    この回答がお探しのものだった場合は、その横にある緑色のチェックマークの枠をクリックして、受け入れ済みとマークします。 – Amber

    1

    これは機能します。丸めたい値を2番目の引数に渡します。あなたのケースでは0.5

    function roundTo($value, $roundTo = 1) { 
        $rounded = round($value); // 4 
        $roundToComparer = $roundTo/2; 
    
        if ($value < $rounded) { // rounded to ceiling 
         if (($rounded - $roundToComparer) > $value) { 
          $rounded = $rounded - $roundTo; 
         } 
        } else { // rounded to floor 
         if (($rounded + $roundToComparer) < $value) { 
          $rounded = $rounded + $roundTo; 
         } 
        } 
    
        return $rounded; 
    } 
    
    $rating = 3.66768748; 
    echo roundTo($rating, 0.5); 
    
    0
    1. は2
    関連する問題