2008-09-15 138 views

Respuesta

50
Double.Parse("1.234567E-06", System.Globalization.NumberStyles.Float); 
+0

Right on Will. Gracias. – odbasta

+13

No funcionará si el separador decimal de la cultura actual no es '.'. Por lo tanto, el enfoque que siempre funciona es usar 'NumberStyles.Any' o (mejor) forzar' InvariantCulture': 'Double.Parse (" 1.234567E-06 ", NumberStyles.Float, CultureInfo.InvariantCulture);' –

+0

Tenga en cuenta que si aplica a .ToString() al final de este procedimiento llamar devolverá la notación científica y no una cadena de solo dígitos. Necesitaba incluir un parámetro de cadena de formato ("0.0000") en la llamada .ToString() para hacer que el formato de flotante sea correcto. –

11

También puedes utilizar

Double.TryParse("1.234567E-06", System.Globalization.NumberStyles.Float, out MyFloat); 

Esto asegurará que MyFloat se fija al valor 0 si, por cualquier razón, la conversión no se pudo realizar. O puede envolver el ejemplo Double.Parse() en un bloque Try..Catch y establecer MyFloat en el valor que elija cuando se detecte una excepción.

+17

No quiere confiar en que MyFloat sea 0 para indicar una conversión fallida, quiere confiar en el valor de retorno bool. – Carl

Cuestiones relacionadas