2011-12-21 4 views

答えて

22

文字列変換を使用してください。浮動小数点演算に必要な強制は自動的に行われます。

"%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" 
6

あなたは数に数学の任意の並べ替えをすることに興味を持っているし、それが小さすぎる場合:

"%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)> 
関連する問題