Herbers Excel-Forum - das Archiv

Rechenfehler bei Excel

Bild

Betrifft: Rechenfehler bei Excel
von: Matthias G
Geschrieben am: 10.12.2003 10:41:08
Hallo liebe Excel-Fans,

Ich habe folgende Funktion:



Function st() As Single
st = 3.7
End Function


Wenn ich nun in eine Zelle "=st()" eigebe, kommt als Ergebnis:
3,700000048

Lasse ich die Typdefinition "as Single" weg, ist das Ergebnis korrekt.
Das passiert sowohl bei Excel 2000 als auch bei Excel XP.

Könnt ihr das nachvollziehen? Oder liegt's am Duron-Prozessor?
Ich wäre sehr, dankbar, wenn ihr mir helfen könntet.

Gruß,
Matthias
Bild

Betrifft: Erklaerung zwar noch offen, aber ...
von: Volker Croll
Geschrieben am: 10.12.2003 11:10:35
Hallo Matthias,

wenn Du statt Single Double nimmst, stimmt's auch wieder.

Die Hilfe sagt dazu zwar
Single (Gleitkommazahl mit einfacher Genauigkeit)
Double (Gleitkommazahl mit doppelter Genauigkeit)
nur korrekt erklaeren, kann ich es Dir auch nicht.

Vielleicht meldet sich noch einer der Mathematiker.

Gruss Volker
Bild

Betrifft: AW: Erklaerung immer noch offen, aber ...
von: Matthias G
Geschrieben am: 10.12.2003 11:17:23
Hallo Volker,
Ich nehme jetzt Double, hab ich auch grade rausgefunden (Danke!).

Trotzdem seltsam, dass eine Zahl wie 3.7 nicht korrekt mit dem Single-Typ dargestellt werden kann...

Naja.

Danke nochmals,
Matthias
Bild

Betrifft: AW: Erklaerung immer noch offen, aber ...
von: IngoG
Geschrieben am: 10.12.2003 12:45:04
Hallo Matthias,

Ich versuchs mal zu erklären:

also single hat eine genauigkeit von 2Byte, die der Rechner binär speichert.

Da 3,7 keine potenz von 2 ist rundet er hinten im singleformat nach 2 Byte.
excel arbeitet aber standardmässig mit einer höheren genauigkeit und bekommt dann den gerundeten wert vorgesetzt...

vielleicht reicht dir das als erklärung

Gruß Ingo
Bild

Betrifft: Danke fuer die Info ! (oT)
von: Volker Croll
Geschrieben am: 11.12.2003 15:53:59
Bild