Domino 9 und frühere Versionen > ND8: Entwicklung
Gleiche Werte, unterschiedliche Ergebnisse im Vergleich
Johnson:
Hallo allerseits,
wir haben hier ein kleines Zahlenspiel, welches bei gleichen Werten zu unterschiedlichen Ergebnissen führt:
--- Code: ---Sub Initialize
Dim i As Double
Dim x As Double
Dim y As Double
i = 757.15
x = 755.00 + 1.08 + 1.07
y = 755.00 + 1.09 + 1.06
Print "x is equal: " & (i = x) ' returns FALSE
Print "y is equal: " & (i = y) ' returns TRUE
End Sub
--- Ende Code ---
Kann mir jemand dieses "Phänomen" erklären? Ich kann es nicht.
Tode:
Das ist ganz logisch und erklärbar.... Dezimalstellen lassen sich nun mal nicht exakt Binär darstellen, und jeder Computer rechnet Binär.
Damit hat man schon mit einer Dezimalstelle immer einen Rundungsfehler... und mit 2 wird es nur schlimmer...
Dazu gibt es mannigfaltige Artikel im Web etc.
Als Programmierer sollte Dir das "Risiko" aber geläufig sein...
klaussal:
Mit "Long" funktioniert es.
Glombi:
siehe dazu auch
http://www-01.ibm.com/support/docview.wss?uid=swg21096503
Johnson:
--- Zitat ---Als Programmierer sollte Dir das "Risiko" aber geläufig sein...
--- Ende Zitat ---
Von C bzw. C++ kannte ich das "Problem" noch. Das hatte ich schon fast geahnt. Konnte es mir in LS nur nicht so recht erklären.
@klauss: Ein Long enthält Ganzzahlen und keine Fließkommazahlen.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln