Rails/Rubyでパーセンテージをどのように評価できますか?

application.helperで私はこれをやろうとしていました。
しかし、それは常に0になります。なぜですか?

私は37%49%98%のようなものを欲しい 常に整数です。浮動小数点なし

def evaluate(number_of_people)
    percentage = ((number_of_people/10000) * 100 ).truncate
    "<div class='percentage'>Percentage is #{percentage}%</div>".html_safe
end
1
nl ru de

1 答え

整数で除算しているので、3000/10000の結果は0になります。

代わりに10000.0で除算し、小数点以下の弧を強制します。

だからこれを変更してください:

percentage = ((number_of_people/10000) * 100 ).truncate

これに:

percentage = ((number_of_people/10000.0) * 100 ).to_i

あなたの分母(この場合は10000の値)が変数の場合、分割する前にto_fを使ってfloatとしてキャストすることができます。

4
追加された
3000/10000は0.3でなければならない:(
追加された 著者 MKK,
どうすれば75%のようなものを簡単に手に入れることができますか?
追加された 著者 MKK,
パーセンテージ自体は常に整数でなければなりません。
追加された 著者 MKK,
これは解決するのが難しいですか?
追加された 著者 MKK,
@cheeseweaselコードでどのようになるのでしょうか?
追加された 著者 MKK,
しかし、整数としての0.3は0です。整数で除算すると、結果は整数になります。
追加された 著者 Sam Peacey,
to_iを使って整数に戻すことができますが、100を掛ける前に小数点を付ける必要があります。
追加された 著者 Sam Peacey,
@MKK私の答えを更新しました
追加された 著者 Sam Peacey,
全く問題無い :)
追加された 著者 Sam Peacey,
合理的な図書館を調べる apidock.com/ruby/Rational
追加された 著者 Jim Deville,