Maison >développement back-end >C++ >Comment puis-je analyser de manière fiable des chaînes avec des points décimaux en doubles, quels que soient les paramètres régionaux ?
Conversion robuste de chaîne en double : gestion des variations locales
La conversion directe de chaînes contenant des points décimaux en doubles à l'aide de double.Parse()
peut être problématique en raison des séparateurs décimaux spécifiques aux paramètres régionaux. Par exemple, une virgule (,
) peut servir de séparateur décimal dans certaines régions, entraînant des erreurs d'analyse si la chaîne utilise un point (.
).
Pour garantir une analyse cohérente quels que soient les paramètres régionaux, utilisez le paramètre CultureInfo.InvariantCulture
dans la méthode double.Parse()
. Cela garantit que l'opération d'analyse utilise une approche invariante de culture, ignorant les paramètres régionaux actuels du système.
Exemple : double.Parse("3,5", CultureInfo.InvariantCulture)
analysera correctement "3,5" comme 3,5, même si les paramètres régionaux actuels utilisent une virgule comme séparateur décimal. De même, double.Parse("3.5", CultureInfo.InvariantCulture)
analysera toujours "3.5" correctement, quels que soient les paramètres régionaux. Cette approche élimine les échecs d'analyse potentiels causés par les variations du séparateur décimal dépendant des paramètres régionaux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!