2016-04-04 4 views
0

Ich habe eine DB-Tabelle, in der eine der Spalten vom Typ REAL ist. Ich muss die Werte dieser Spalte in einer .NET-Umgebung vergleichen, aber das Casting auf REAL vermasselt die Zahl.So finden Sie den tatsächlichen Wert einer Float-Variable in .NET

Zum Beispiel wird 15.02 im DB Spar tatsächlich 15,020000457763672 den Wert speichern. Späteres Lesen aus der Datenbank und Versuch, 15.02 mit dem aus der DB erhaltenen Wert zu vergleichen, führt zu unerwarteten Ergebnissen.

Da ich wegen der Abwärtskompatibilität am REAL-Datentyp festhalte, kann man den "echten" Wert der Variablen im .NET-Code abrufen, ohne eine Fließkommazahl Stück für Stück konstruieren zu müssen?

mit dem obigen Beispiel, wie kann ich 15.02 => 15.020000457763672 in .NET-Code transformieren?

+2

So funktioniert Gleitkomma. Wenn Sie Gleitkommazahlen vergleichen möchten, müssen Sie nach einem akzeptablen Bereich und nicht nach einer genauen Übereinstimmung suchen. –

Antwort

0

Erstellen Sie den Typ als Float und konvertieren Sie ihn dann in Double. Schwimmer f = 15.02f; doppelt d = Convert.ToDouble (f); f.ToString ("r") => "15.020000457763672"

Verwandte Themen