2011-12-21 51 views

Respuesta

22

Simplemente use la conversión de cadenas. La coerción necesaria para flotar se realizará automáticamente:

"%f" % "1.0e-05" 
=> "0.000010" 

# Which, behind the scenes is the same as: 
"%f" % "1.0e-05".to_f 
=> "0.000010" 

Ajuste según sea necesario para obtener más o menos precisión. Por ejemplo:

"%.5f" % "1.0e-05" 
=> "0.00001" 

Si usted desea conseguir la suposición real y cortar los ceros innecesarios al final, aquí está una manera. (Esperemos que alguien le sugiere algo más elegante, no podía pensar en otra cosa):

("%.20f" % "1.0e-05").sub(/\.?0*$/, "") 
=> "0.00001" 
6

Si usted está interesado en hacer cualquier clase de matemáticas en un número y que es demasiado pequeño:

"%f" % "1.0e-10" 
=> "0.000000" 

# not so good for various reasons 
("%f" % "1.0e-10") == ("%f" % "1.0e-8") 
=> true 

Puede utilizar BigDecimal:

BigDecimal.new "1.0e-10" 
=> #<BigDecimal:7ffdf6c38678,'0.1E-9',9(18)> 
Cuestiones relacionadas