float.Parse () ne fonctionne pas comme je le voulais
J'ai un fichier texte,que j'utilise pour entrer des informations dans mon application.Le problème est que certaines valeurs sont en float et parfois ils sont nuls,c'est pourquoi j'obtiens une exception.
var s = "0.0";
var f = float.Parse(s);
Le code ci-dessus, déclenche une exception à la ligne 2 "chaîne d'Entrée n'était pas dans un format correct."
Je crois que la solution serait l'avancée des surcharges de flotter.L'analyse,qui comprennent IFormatProvider comme paramètre,mais je ne sais pas quoi encore.
Comment puis-je analyser "0.0"?
source d'informationauteur Ivan Prodanov
Vous devez vous connecter pour publier un commentaire.
Dot symbole "." n'est pas utilisé comme séparateur (cela dépend des paramètres de Culture). Donc, si vous voulez être absolument sûr que la dot est analysée correctement, vous devez écrire quelque chose comme ceci:
Vous pouvez vérifier la valeur null ou une chaîne vide en premier.
Vous pouvez également utiliser l'une des surcharges de
Parse
(ou même utiliserTryParse
), pour donner plus de contrôle spécifiques.E. g. vérifier à l'aide de la invarient de la culture, pour éviter séparateur décimal variations avec les non-utilisateurs de données visibles (par exemple, de A2A communications):
Suivant fonctionne pour moi:
Le cas inverse (fonctionne pour tous les pays):
J'ai juste essayé et ça n'a pas de jeter des exceptions à tout.
Est votre format de nombre à l'aide de virgule plutôt que le point décimal? Avez-vous essayé:
Avoir demandé cela, je l'ai juste essayé avec la virgule attends à recevoir une exception, mais n'a pas. Donc, cela pourrait ne pas être la réponse.
Ou, vous pouvez simplement vérifier si l'entrée de texte n'est pas null ou vide.
Aussi, être prudent, parce que, dans certains pays, le "." (dot) qui sépare les nombres réels est "," (virgule)