私は例えば、十進表記にfind
とconvert
にcsvファイル内のすべての科学的表記の文字列を希望:科学表記文字列を10進表記に変換するにはどうすればよいですか?
1.0e-05 to 0.00001
私はルビーでいることをどのように行うことができますか?
私は例えば、十進表記にfind
とconvert
にcsvファイル内のすべての科学的表記の文字列を希望:科学表記文字列を10進表記に変換するにはどうすればよいですか?
1.0e-05 to 0.00001
私はルビーでいることをどのように行うことができますか?
文字列変換を使用してください。浮動小数点演算に必要な強制は自動的に行われます。
"%f" % "1.0e-05"
=> "0.000010"
# Which, behind the scenes is the same as:
"%f" % "1.0e-05".to_f
=> "0.000010"
多かれ少なかれ精度を得るために必要に応じて調整します。例:
"%.5f" % "1.0e-05"
=> "0.00001"
最終的に不要なゼロ点を取り除きたい場合は、こちらをご覧ください。 (うまくいけば、誰かがよりエレガントなものを提案します。私は何も考えることができませんでした):
("%.20f" % "1.0e-05").sub(/\.?0*$/, "")
=> "0.00001"
あなたは数に数学の任意の並べ替えをすることに興味を持っているし、それが小さすぎる場合:
"%f" % "1.0e-10"
=> "0.000000"
# not so good for various reasons
("%f" % "1.0e-10") == ("%f" % "1.0e-8")
=> true
BigDecimalを使用できます。
BigDecimal.new "1.0e-10"
=> #<BigDecimal:7ffdf6c38678,'0.1E-9',9(18)>