4 Stimmen

String in Dezimalzahlen umwandeln, wobei das genaue Eingabeformat beibehalten wird

Ich bin mir sicher, dass dies ein Kinderspiel ist, aber ich habe wirklich Probleme mit etwas, das trivial erscheint.

Ich brauche, um den eingegebenen Text eines Textfeldes auf dem Formular zu überprüfen und zu sehen, wenn es innerhalb eines gewünschten Bereichs ist (ich habe versucht, einen Bereich Validator, aber es funktioniert nicht aus irgendeinem Grund, so dass ich versuche, dies Server-seitig zu tun).

Was ich tun möchte, ist:

Ermitteln Sie den eingegebenen Wert (z. B. 0,02), ersetzen Sie die Kommas und Punkte, wandeln Sie ihn in eine Dezimalzahl um (oder in eine Potenz oder ein Äquivalent) und prüfen Sie, ob er zwischen 0,10 und 35000,00 liegt.

Hier ist, was ich bis jetzt habe:

string s = txtTransactionValue.Text.Replace(",", string.Empty).Replace(".", string.Empty);
        decimal transactionValue = Decimal.Parse(s);
        if (transactionValue >= 0.10M && transactionValue <= 35000.00M) // do something

Wenn ich 0,02 in die oben genannten übergeben, transactionValue ist 2. Ich möchte den Wert als 0,02 behalten (dh tun keine Formatänderungen zu ihm - 100,00 ist 100,00, 999,99 ist 999,99)

Irgendwelche Ideen?

Vielen Dank im Voraus, Brett

0voto

Peter Punkte 34999

Ich würde verwenden Decimal.Parse("0.02", CultureInfo.InvariantCulture) aber das funktioniert nur, wenn Sie die . als Zuschauerin. Um sicherzustellen, dass Sie keine Fehler erhalten, sollten Sie Ihre Daten immer validieren, bevor Sie sie parsen.

Decimal.Parse scheint unbekannte Zeichen zu ignorieren, während die andere Parse Funktionen werfen Ausnahmen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X