Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Problem es werden 10 nachkommastellen angzeigt...

Problem es werden 10 nachkommastellen angzeigt...
16.08.2004 07:57:01
ray
Guten Morgen,
damit adiere ich die Zahlen in Spalte 25:
yy = yy + Worksheets("" & mL).Cells(x, 25).Value
Problem: wenn ich die Summe ausgebe bekommen ich als wert:
82131,0799999999
und daß, obwohl alle Zahlen in spalte 25 nur zwei Stellen haben. Sind Beträge, die nur mit 2 Komastellen eingegeben wurden.
Warum bekomme ich 10 stellen zurück?
Viele Grüße aus Hamburg bei herannahmenden Regen
Ray
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem es werden 10 nachkommastellen angzeigt...
16.08.2004 09:15:18
Frank
Hi Ray
das liegt einfach daran, das Excel (wie alle anderen Computerprogramme) im Binärsystem rechnet. Und da lassen sich nun mal leider einige Dezimalwerte nicht exakt darstellen. Da hilf nur Runden Funktionen mit einzubauen.
Frank
hmmm, mit "summe" wird aber richtig gezeigt...
16.08.2004 09:30:41
ray
danke frank und gruß
fehlerwert gefunden, aber warum der?
16.08.2004 10:09:33
ray
Hi,
habe halle zeilen einzelnd durchlaufen lassen. Der fehler liegt in zeile 4.
lasse ich ohne diese Zeile durchlaufen, dann bekomme ich als ergebnis 2 kommastellen.
Leider kann ich nicht erkennen, warum der Wert 385,99 in der addition mit anderen WErten 10 Kommastellen prodziert.
Wenn ich den Wert mit msgbox ausgebe, dann steht 385,99. Addiesere ich ihn mit anderen kommen 10 Kommastellen. die Zelle in der der Wert steht ist wie alle anderebn als Zahl mit 2 kommastellen formatiert.
Weiß jemd rat?
Gruß aus Hamburg, wo es wohl gleich mal wieder regnet...
Ray
Anzeige
AW: fehlerwert gefunden, aber warum der?
16.08.2004 10:31:22
Frank
Hi Ray
wie gesagt, der Wert 385,99 kann wahrscheinlich nicht exakt im Binärsystem dargestellt werden und schon kann es dazu kommen. Schau Dir mal folgende ausführlichere Erklärung an:
http://www.cpearson.com/excel/rounding.htm
Im Ergebnis muss man bei Fießkommaberechnungen (und das tust Du hier implizit) immer mit diesen Rundungsdifferenzen rechnen (und im Program dafür Vorsorge treffen). Das gilt insbesondere für Vergleichsoperationen. Nutze also möglichst nicht
IF var1=var2 then ...
sondern besser
IF Abs(var1-var2)&ltepsilon then
und mache 'epsilon' ausreichend klein
Frank
Anzeige
danke Frank werd das Thema lernen. Gruß Ray
16.08.2004 11:02:27
ray
d
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige