2009-03-20 7 views
1

Est-il possible que .NET utilise sur le serveur A ',' comme séparateur décimal et sur un autre serveur B '.'? + Comment pouvez-vous détecter cela?Localisation avec séparateur décimal

Lors de la conversion de chaînes en doubles, sur le serveur A tout fonctionne correctement, mais sur le serveur B, nous avons des problèmes.

Exemple:

serveur A: 20,4 -> 20,4 serveur B: 20,4 -> 204

Il faudrait détecter cela pour que les choses sur les deux serveurs continuent à travailler .

thx, Lieven Cardoen

Répondre

1

On dirait que les paramètres régionaux est définie correctement sur un serveur, mais pas l'autre.

Il existe plusieurs façons de procéder, mais vous pouvez définir les paramètres régionaux du thread actuel dans votre page App/ASP.NET en utilisant Thread.CurrentThread.CurrentCulture et Thread.CurrentThread.CurrentUICulture.

Pour définir ce pour toute l'application, vous feriez dans votre web.config:

<configuration> 
    <system.web> 
    <globalization culture="en-US" uiCulture="en-US" /> 
... 
+0

Pouvez-vous définir ceci pour l'application asp.net globale au lieu de pour chaque thread séparément? –

+0

Yup! Mise à jour ma réponse –

+0

Je suppose que dans votre cas, ce pourrait être "nl-BE" ou "fr-BE", mais vous avez l'idée. –

1

J'utilise

String.Format(System.Globalization.CultureInfo.InvariantCulture, ....) 

dans les cas où vous ne voulez pas avoir la culture sortie spécifique. (Par exemple, lorsque vous écrivez des données de sérialisation pour d'autres applications, etc.) De cette façon, peu importe ce que Culture est actuellement défini, la sortie sera toujours la même.

Questions connexes