1

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
4

1 に答える 1

4

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

代わりに 10000.0 で除算して、10 進数の算術演算を強制します。

したがって、これを変更します。

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

これに:

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

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

于 2013-01-29T07:41:13.063 に答える