Ausnahme beim Analysieren negativer Doppelzahlen in C #

9

Ich kodiere eine Menge Code, der einige Daten aus einer Datenbank extrahiert. Und das Problem ist, dass ich einen negativen Zahlenstring "-2.8" in ein Doppel konvertieren möchte. Ziemlich einfach, dachte ich. Ich habe zuerst mit:

versucht %Vor%

Mit diesem Ergebnis:

%Vor%

Also dachte ich nochmal nach, suchte auf google und bekam eine neue Antwort:

%Vor%

Epic fail again:

%Vor%

Ich dachte wieder, ich kann nicht so dumm sein, nicht zu wissen, wie man so eine einfache Aufgabe macht. Ich habe es versucht:

%Vor%

Ja, genau die gleiche Ausnahme noch einmal. Ich habe angefangen, eine Nummer zu suchen, und, ich habe auf dem negativen Zeichen begriffen. Schau dir diese Nummer vorsichtig an "-2.8" das ist keine negative Zahl. Dies ist eine negative Zahl "-2.8". Sieh dir diese Zeichen wieder an "----- -----" nicht dasselbe. Das Parsen eines Strings mit einem anderen Vorzeichen wirft eine Ausnahme auf: S Also, hat irgendjemand eine Idee, wie man es elegant zu einer doppelten Zahl in C # parsen kann? Thak du!

    
etragu 25.03.2014, 22:21
quelle

5 Antworten

13

Richtige Vorgehensweise:

%Vor%     
Søren Debois 25.03.2014, 22:38
quelle
6

Ersetzen Sie den Bindestrich durch einen Bindestrich:

%Vor%

(Sie möchten vielleicht nach anderen seltsamen Zeichen Ausschau halten, die aus dieser Datenbank kommen.)

    
Søren Debois 25.03.2014 22:24
quelle
1

Sie haben ein Zeichen, das nicht das in Zahlen verwendete Minuszeichen ist (Sie haben einen Bindestrich, keinen Bindestrich). Sie müssen es ersetzen, es gibt keinen anderen "eleganten" Weg. Diese beiden Zeichen ähneln sich nur visuell, aber sie sollen sich nicht ohne Bedeutungsänderung ersetzen.

%Vor%     
Szymon 25.03.2014 22:25
quelle
0

Ich würde vorschlagen, TryParse anstelle der Parse-Methode zu verwenden, weil sie behutsam mit Ihrem Fehler umgehen, falls vorhanden.

Code -

var test1 = "-123.95"; decimal result; decimal.TryParse(test1, out result);

Sie erhalten einen geparsten doppelten Wert in result .

    
arpitbakshi 26.03.2014 14:06
quelle
0

Könnte ein alter Beitrag sein, aber für jeden, der das liest ...

Sie haben NumberStyles.AllowTrailingSign, das sollte NumberStyles.AllowLeadingSign sein, ansonsten wird kein - sign anyways akzeptiert.

    
Daniel Andersson 11.09.2017 11:35
quelle

Tags und Links