Chciałbym find
i convert
wszystkie naukowe łańcuchy notacji pliku csv do notacji dziesiętnej, np .:Jak przekonwertować ciąg notacji naukowej na zapis dziesiętny?
1.0e-05 to 0.00001
Jak mogę to zrobić w Ruby?
Chciałbym find
i convert
wszystkie naukowe łańcuchy notacji pliku csv do notacji dziesiętnej, np .:Jak przekonwertować ciąg notacji naukowej na zapis dziesiętny?
1.0e-05 to 0.00001
Jak mogę to zrobić w Ruby?
Wystarczy użyć konwersji ciągów. Konieczne wymuszenie float zostanie wykonane automatycznie:
"%f" % "1.0e-05"
=> "0.000010"
# Which, behind the scenes is the same as:
"%f" % "1.0e-05".to_f
=> "0.000010"
Dostosuj w razie potrzeby, aby uzyskać większą lub mniejszą dokładność. Na przykład:
"%.5f" % "1.0e-05"
=> "0.00001"
Jeśli chcesz uzyskać prawdziwą fantazję i zerwać niepotrzebne zera na końcu, oto jeden sposób. (Mam nadzieję, że ktoś zaproponuje coś bardziej eleganckie, nie mogłem myśleć o niczym):
("%.20f" % "1.0e-05").sub(/\.?0*$/, "")
=> "0.00001"
Jeśli jesteś zainteresowany robieniem jakichkolwiek matematyki na kilku i to jest zbyt mały:
"%f" % "1.0e-10"
=> "0.000000"
# not so good for various reasons
("%f" % "1.0e-10") == ("%f" % "1.0e-8")
=> true
Możesz użyć BigDecimal:
BigDecimal.new "1.0e-10"
=> #<BigDecimal:7ffdf6c38678,'0.1E-9',9(18)>