0

タイトルで質問が言っていることだけです。私は整数のペアを持っています。それを浮動小数点に変換して、浮動小数点演算を実行できるようにしたいと考えています (適切なパーセンテージを取得するため)。

現在、私のコードは次のようになっています。

(failure_and_run_count[:failure].round(1) / failure_and_run_count[:run].round(1)) * 100.0

failure_and_run_count 内の int を浮動小数点に変換するより良い方法があることを教えてください。

4

3 に答える 3

3

2 つの可能なオプション:

Floatメソッドはその引数を受け取り、それを浮動小数点数に変換します。その変換が失敗した場合、プログラムはエラーで終了します。

(failure_and_run_count[:failure] / Float(failure_and_run_count[:run])) * 100.0

to_f : 数値を Float に変換します。数値が Float に収まらない場合、結果は無限になります。

(failure_and_run_count[:failure] / failure_and_run_count[:run].to_f) * 100.0
于 2013-05-31T14:58:43.123 に答える
2

to_f目的のための方法があります:

1.to_f # => 1.0
1.to_f.class # => Float

あなたの例では:

failure_and_run_count[:failure] / failure_and_run_count[:run].to_f * 100.0

Floatメソッドを呼び出すと、もう一方のオペランドは自動的に強制されるため、明示的に強制する必要があるのは 1 つのオペランドだけです/

厄介なことが起こる可能性があるため、注意してください。

''.to_f # => 0.0
nil.to_f # => 0.0
'foo'.to_f # => 0.0
于 2013-05-31T14:57:06.287 に答える
1
Float (failure_and_run_count[:failure])
于 2013-05-31T14:56:50.983 に答える