Ich verwende Convert.ToDouble(value)
, um einen OleDbDataReader-Typ in Double zu konvertieren, aber manchmal werden zusätzliche Dezimalstellen hinzugefügt (ich arbeite mit Access).Konvertieren in doppelt fragwürdige Genauigkeit
Beispiel:
Lets sagen data(0)
den Wert hält 69,8 (mit Komma)
Dann ist dieser mein Code:
Dim data As OleDbDataReader = DBBroker.getInstance.read("SELECT ......")
Dim m as Double = Convert.ToDouble(data(0))
Mein Problem ist, dass diese m
etwas macht wie 69,80002302 (oder etwas Ähnliches) statt nur 69,8 wie es wirklich enthält.
Warum? Wie kann ich es lösen?
Ihr angegebenes Beispiel ist [nicht reproduzierbar] (https://dotnetfiddle.net/5S2g55). Wie @JohnColeman schrieb, geben Sie bitte ein echtes Beispiel Ihres Codes, wenn Sie tatsächlich auf dieses Problem stoßen. –
Ich habe es bearbeitet. – Wrong
Sind Sie sicher, dass der Wert in der Datenbank genau 69,8 ist? Einige Datenbank-Tools können das Feld so formatiert anzeigen, dass es nur aussieht * wie es 69,8 enthält, aber 69,80002302 wirklich hält. –