Exception lors de l'analyse négative double numéros en C#

Je suis de codage de la paix de code permettant d'extraire des données à partir d'une base. Et le problème est que je veux convertir un nombre négatif chaîne "-2.8" pour un double. Assez facile, j'ai pensé. J'ai essayé d'abord avec:

var climateString = "−2.8";
var number = double.Parse(climateString);

Avec ce résultat:

An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll

Alors j'ai pensé encore une fois, cherché sur google, et a obtenu de nouveaux réponse:

var climateString = "−2.8";
var styles = NumberStyles.AllowParentheses | NumberStyles.AllowTrailingSign |NumberStyles.Float | NumberStyles.AllowDecimalPoint;
var rit = double.Parse(climateString, styles);

Epic fail de nouveau:

An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll

J'ai pensé encore une fois, je ne peux pas être aussi stupide que de ne pas savoir comment faire une telle tâche simple. J'ai essayé ceci:

 var climateString = "−2.8";
 var doue = Convert.ToDouble(climateString, CultureInfo.InvariantCulture);

Oui, exactement de la même exception de nouveau. J'ai commencé à regarder un le nombre, et, j'ai réalisé le signe négatif. Look de ce numéro avec précaution "-2.8" ce n'est pas un nombre négatif. C'est un nombre négatif "-2.8". Regardez ces signes de nouveau "----- -----" pas le même. Analyse une chaîne avec un autre signe déclenche une exception : S. Donc, si quelqu'un a une idée, comment l'analyser élégamment à un nombre double en C#? Thak vous!

Vous connaissez le problème, c'est que vous avez un caractère incorrect. Donc l'enlever?
Ou peut-être nettoyer la source de données dans la base de données en premier. Garbage in, Garbage out.

OriginalL'auteur etragu | 2014-03-25