What's the proper way to convert from a scientific notation string such as "1.234567E-06" to a floating point variable using C#?
Convert from scientific notation string to float in C#
Asked Answered
Double.Parse("1.234567E-06", System.Globalization.NumberStyles.Float);
Note that if you tack a .ToString() on the end of this procedure call it will return the scientific notation and not a string of only digits. I needed to include a format string parameter ("0.0000") in the .ToString() call to make the float format correctly. –
Myceto
Also consider using
Double.TryParse("1.234567E-06", System.Globalization.NumberStyles.Float, out MyFloat);
This will ensure that MyFloat
is set to value 0 if, for whatever reason, the conversion could not be performed. Or you could wrap the Double.Parse()
example in a Try..Catch
block and set MyFloat
to a value of your choosing when an exception is detected.
You don't want to rely on MyFloat being 0 to indicate a failed conversion, you want to rely on the bool return value. –
Strega
© 2022 - 2024 — McMap. All rights reserved.
.
. So the always working approach is either usingNumberStyles.Any
or (better) forceInvariantCulture
:Double.Parse("1.234567E-06", NumberStyles.Float, CultureInfo.InvariantCulture);
– Toxemia