System.Math.Round(0.12)

18/09/2007 - 15:45 von Jörg Meier | Report spam
Hallo NG,

also ich habe im Moment ein recht seltsames Verhalten der
System.Math.Round-Funktion:

System.Math.Round(0.12,1) gibt 0.10000000149011612 (alles mit
Double-Variablen)
und:
System.Math.Round(0.1,1) gibt auch 0.10000000149011612 (wieder alles mit
Double-Variablen)
Ein Dim d as Double = 0.1 geht aber problemlos.

Und system.Math.Round(0.1,1)-CDbl(0.1) gibt auch den "richtigen" Fehlbetrag
aus: 0.0000000014901161138336505


Da bin ich doch noch lange nicht an den Grenzen von Double angekommen oder
mach ich da was falsch?!?

Jörg

PS: VS2005 Express, Framework 2.0.50727, alle Patches aktuell.
 

Lesen sie die antworten

#1 Armin Zingler
18/09/2007 - 16:00 | Warnen spam
"Jörg Meier" schrieb
Hallo NG,

also ich habe im Moment ein recht seltsames Verhalten der
System.Math.Round-Funktion:

System.Math.Round(0.12,1) gibt 0.10000000149011612 (alles mit
Double-Variablen)



Woran siehst du das? Bei mir wird "0,1" angezeigt:

Dim d As Double
d = System.Math.Round(0.12, 1)
MsgBox(d.ToString)


Armin

Ähnliche fragen