J'ai une source XML qui utilise un point (".") en tant que séparateur décimal et je l'analyse sur un système qui utilise une virgule (",") comme séparateur décimal. p>
En conséquence, la valeur de 0,7 est analysée avec Quelles sont mes options pour analyser correctement? L'un d'entre eux est de remplacer les points dans la source avec des virgules avec double.tryparse code> ou
double.parse code> comme 7000000. P>
string.replace ('.', ',') Code> mais je ne pense pas que j'aime beaucoup ça. P>
4 Réponses :
double.tryparse code> a une surcharge prenant un iFormatProvider. Utilisez un culture correspondant, dans votre cas, la cultureInfo.invarianTculture peut être utilisée. P>
Un exemple aurait été apprécié, pour les types de paresseux américains.
Cela fait le travail:
Vous devriez décrire un peu comment et pourquoi cela fonctionne.
La norme XML est explicite sur la mise en forme des dates et des chiffres, etc. Cela aide à s'assurer que le XML est indépendant indépendant et interopérable. Jetez un oeil à l'aide d'utiliser xmlconvert pour les données XML. < Pré> xxx pré> p>
C'est une bonne recommandation que de nombreuses personnes ne sont pas au courant de la classe XMLConvert. Ceci est particulièrement important lorsque vous travaillez avec des valeurs DateTime.
Oui, je n'étais pas au courant de celui-ci. Merci!
@Chris il donne une chaîne d'entrée n'était pas dans l'erreur de format correct. Comment pouvons-nous garder, comme séparateur?
moyen facile de spécifier le séparateur décimal personnalisé:
var price = "122$00"; var nfi = new NumberFormatInfo { CurrencyDecimalSeparator = "$" }; var ok = decimal.TryParse(price, NumberStyles.Currency, nfi, out result);