Hallo Andreas,
Andreas schrieb:
Hi,
ich habe grade festgestellt, das calc irgend ein problem mit dem
zusammen rechnen von zahlen hat.
ich habe also eine Tabelle, die ich als kassenbuch benutze:
ich gebe also in spalte 1 die aus oder einnahme ein, in spalte 2 die
erklärung, wie zB einkauf oder sowas) und in spalte 3 lass ich den misst
einfach zusammen rechnen, also den vorbetra plus den neuen betrag
(beispiel: =F882+D883 das steht in zeile F883)
soweit klappt das auch ganz gut, jetzt ist mit aufgefallen, das calc hin
und wieder in der 12-13 stelle nach dem komme hin und wieder eine 1; 2;
3 schreibt wenn er vorher zahlen zusammen rechnet. bei mir wären also
1048,70 - 60 = 988,7000000000020
da alles automatisch rechnet und die zahlen vorher glatt sind und auch
die eingabe wirklich nur eine eingetippte 60 ist, sollte die zahl auch
988,70 heissen.
du bist auf ein grundsätzliches Problem mit Rechnen auf dem Computer
gestoßen. Computer benutzen intern nicht das Zehnersystem sondern das
Zweiersystem. Und so wie im Zehnersystem beispielsweise 1/3 nicht mit
einer endlich Dezimalzahl dargestellt werden kann, so kann im
Zweiersystem 1/10 und 1/100 nicht mit einer endlichen Zahl dargestellt
werden. Da ein Computer aber nur endlich Platz hat, muss die Zahl
irgendwo abgeschnitten werden und das gibt dann beim Rückwandeln in das
Zehnersystem Ungenauigkeiten.
Dieses Problem tritt generell auf, nicht nur bei OOo. Im allgemeinen ist
OOo auf mindestens 12 Ziffern genau, was für die Grundrechenarten auch
problemslos eingehalten wird. Du solltest es nur vermeiden Zahlen
voneinander zu subtrahieren, die sich erst in den letzten Dezimalstellen
voneinander unterscheiden.
Was kannst du tun? Da gibt es verschiedene Varianten, je nach Anforderung.
(1) Vermeide Dezimalzahlen. Bei Geldbeträgen heißt das, dass du in Cent
rechnest. Bei ganzen Zahlen gibt es keine Umwandlungsungenauigkeiten.
(2) Runde nach jeder Rechenoperation wieder auf zwei Stellen nach dem
Komma. Dabei musst du von den diversen angebotenen Rundungsmechanismen
das kaufmännische Runden benutzen.
(3) Stelle OOo so um, dass es, wenn es zum Weiterrechnen einen Wert aus
einer Zelle holt, nicht den internen Wert nimmt, sondern den Wert
benutzt, wie er in der Zelle angezeigt wird.
(4) Ignoriere, dass deine Zahl irgendwo ab der 12. Dezimalstelle nicht
so aussieht wie von Hand gerechnet, du brauchst wahrscheinlich eh nur
2-3 bis Dezimalstellen.
mfG
Regina
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org