Je suis confronté à un problème de la conversion de la chaîne en décimale en utilisant C # .NET. Le problème est que j'ai écrit le code suivant et fonctionne bien sur mon système de développement Windows 7 .NET Framework 3.5. Mais si je déplace l'application sur le cadre de Windows 2003 Server 3.5, le résultat est différent. Quelqu'un peut-il comprendre ce qui se passe là-bas?
code: p> Windows 7 résultat: 85.00
Windows 2003 Résultat: 8500 P> P>
5 Réponses :
Il se peut que la région et la culture des paramètres de votre serveur soient définies avec Si cette chaîne numérique est générée par votre application, j'utiliserais , code> comme décimal et
. code> comme regroupement de chiffres. Voir Paramètres du panneau de configuration / de la région et de la culture.
cultureinfo.invariantculture code> dans les deux endroits. P>
Decimal dec = 85.0m;
string s = dec.ToString (CultureInfo.InvariantCulture);
decimal.Parse(s, CultureInfo.InvariantCulture);
L'astucieux n'a pas dit quelle était la chaîne d'entrée, mais je soupçonne que c'est correct. +1
Vous êtes affecté par les paramètres régionaux. Lorsque la chaîne 85.00 est analysée dans une locale où l'arrêt complet est utilisé comme séparateur décimal, le résultat est de 85,00. Si la virgule est utilisée comme séparateur décimal, le résultat est de 8500.
Utilisez la surcharge dans laquelle vous spécifiez un Vous pouvez également utiliser dans une application de qualité de production Vous devez toujours spécifier ou connaître le cultureInfo code>: p>
CultureInfo.invarianTculture Code> Quelle est la valeur par défaut .net
cultureInfo CODE> et similaire à l'anglais
cultureinfo code>. p>
cultureInfo code> utilisé lorsque vous analysez et formatez les chaînes. Si vous utilisez l'analyse de code sur votre projet, vous obtiendrez des avertissements lorsque vous oubliez de le faire: CA1304: Spécifiez le cultureInfo . P> p>
Essayez d'utiliser le mode culturel ignorant
Oui!! C'était!! Merci!!
Nous sommes confrontés à la question lorsque était 0,5 p> , mais p> était 5 ! p> La solution consistait à utiliser p>
Donc, j'ai utilisé la fonction suivante mais elle uniquement pour le russe comme séparateur décimal p> p>
Quelle est la valeur de
strdec code>