7

私はここで見つかったpythonと同じ問題を抱えていますが、ルビーです。

1e-5 ではなく、0.00001 のような小さな数値を出力する必要があります。

特定の問題の詳細については、次を使用してファイルに出力していますf.write("My number: " + small_number.to_s + "\n")

私の問題では、精度はそれほど大きな問題ではないので、 if ステートメントを実行して small_number < 1e-5 かどうかを確認してから 0 を出力しても問題ありません。本来あるべきほどエレガントではないようです。

では、これを行うためのより一般的な方法は何ですか?

4

4 に答える 4

2

末尾のゼロを削除できるように、次のようにします。

puts ("%.15f" % small_number).sub(/0*$/,"")

15 を超えすぎないようにしてください。そうしないと、浮動小数点数の不正確さに悩まされます。

puts ("%.25f" % 0.01).sub(/0*$/,"")
0.0100000000000000002081668
于 2013-05-06T18:03:33.173 に答える