2010-07-02 17 views
5

En un PC con Windows en Japón, esta línea de C# emite una excepción formato:C# no puede analizar NaN como un doble

double d = double.Parse("NaN"); 

Esta línea se ejecuta bien en mi PC en los EE.UU.

Don' No sé por dónde empezar a solucionar este problema. ¿Alguna idea?

Gracias de antemano, Jim

Respuesta

7

Veo cuál es el problema. Intente usar el proveedor de formato invariante.

double d = double.Parse("NaN", CultureInfo.InvariantCulture); 
+0

Puedo ayudar pero reírme como un niño pequeño cuando uso 'double d;'. – ChaosPandion

+0

Enviaré al usuario esta prueba. Si tiene éxito, ¿qué significa esto? Que tienen algún tipo de localización japonesa activada en Windows? –

+0

@Jim - Eso es exactamente lo que significa. – ChaosPandion

-3

En primer lugar, se debe determinar el valor doble para "NaN". De todos modos, el análisis de cadena de formato no numérico causará System.FormatException, debe atraparlo y establecer el doble valor manualmente.

double x; 
string foo = "NaN"; 
try 
{ 
    x = double.Parse(foo); 
} 
catch 
{ 
    x = 0.0; 
} 
+1

En realidad 'TryParse' es el método preferido ya que no se basa en una excepción para el flujo de control. – ChaosPandion

+1

Pero la variable debe inicializarse en Double.NaN. Este valor existe en un archivo que está inicializando el doble. –

Cuestiones relacionadas