2016-07-19 22 views
0

Ich integriere eine Bibliothek mit meinem C# -Code. Es gibt einen Dezimalparameter, den ich aus der Bibliothek verwende. Parameter geben übliche Dezimalwerte zurück, meist wie folgt: 0,24756400. Aber manchmal gibt es Werte im exponentiellen Format wie: 0E-8.Identifizierender Exponentialwert in C#

Wenn ich versuche, den Parameter in meinem Code zu verarbeiten, zum Beispiel, wenn ich es wie folgt analysieren:

Decimal.Parse(paymentAuth.IyziCommissionFee);) 

es mir

Ausnahme gibt

Objektverweis nicht auf eine Instanz eines Objekts) wenn der Wert im Exponentialformat ist.

Wenn ich das Wertformat (Nummer oder Exponential-Nummer) identifizieren kann, kann ich es verwalten.

Also, wie kann ich identifizieren, wenn der Wert im Exponential-Format ist? Alternativ, irgendein Vorschlag, um solche Situation zu verwalten?

+1

Das ist nicht richtig zu sein scheint. Diese Ausnahme wird wahrscheinlich ausgelöst, wenn 'paymentAuth'' null' ist, unabhängig vom Format. –

+0

Der angegebene Fehler ist kein Parse-Fehler. Sie müssen weitere Details angeben. –

+0

Mögliches Duplikat von [Was ist eine NullReferenceException, und wie behebe ich es?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) –

Antwort

1

Sie brauchen nicht zu erkennen, ob es ein Exponent ist oder nicht

Wenn Sie eine Zeichenfolge analysieren mögen, die ein exponentielles Format in eine Dezimalzahl sein könnten Sie die Überlastung der Decimal.Parse Methode verwenden können, die eine nimmt System.Globalization.NumberStyles Parameter, um dies zu tun.

Dies gibt an, dass die eingehende Zeichenfolge ein Float ist, das Sie mit dem Exponentialformat darstellen können, von dem Sie sprechen.

Sie können die MSDN-Dokumentation über diese Überlastung lesen und die NumberStyles Typ hier: