Hallo Alois,
danke für den Hinweis. Ja, irgendetwas wie diesen Umweg habe ich mir
auch schon ausgedacht. Aber das ist unbefriedigend. Vor allem, da es
anscheinend keine eingebaute Funktion zum Runden gibt.
Ärgerlich ist es, dass die Zahlen im Betrachter als gleich angezeigt
werden, es aber dann doch nicht sind.
Und wenn ich 123,45 eingebe als Zahlenwert, dann sollte das auch so
sein. Irgendwie müsste man doch die Ungenauigkeiten auf der 12. Stelle
beseitigen können. Denn es scheint das in der Formeln in der Tabelle
möglich zu sein. Da tauchen die Vergleichsfehler nicht auf. Nur beim
Makro. Oder mein REchner rechnet falsch 😮
Horst
Am 14.02.2022 um 22:55 schrieb Alois Klotz:
Hallo,
ich bin jetzt nicht der Programmierspezialist ....
Es gibt meiner Erfahrung nach zwei Möglichkeiten:
- man vergleicht nur gerundete Werte auf Gleichheit - wichtig: nur für
den Vergleich runden!
- man berechnet die absolute Differenz zwischen den Zahlen und wenn
die kleiner als x ist, geht man von Gleichheit aus.
MfG Alois
technik_...@jrsch.de schrieb am 14.02.2022 um 22:42:
Hallo,
ich verzweifle an den Rechenfehlern.
ich will aus einer Tabelle Werte auslesen und vergleichen. Doch
obwohl die Werte gleich sind gibt der Vergleich immer einen Fehler. (
auf der x. Stelle nach dem Komma) Das ist ein Problem der
Fließkommazahlen, ich weiß. Aber das dürfte trotzdem nicht sein.
Ich habe verschiedenes versucht, die Zahlen umzuwandeln z.B.
REM 1. Versuch
SNeu= -256.34
dd=(sNeu*100) '25634
d=fix(sNeu*100) '25633
Vbetrag= -124.98
Salt=-131.36
diff0=sneu-salt '-124,98
diff= fix(sNeu*100) - fix(sAlt*100) '-12497
vb=fix(vbetrag*100) '12498
vergleich=(vb<>diff) 'true
REM und noch mal mit den gleichen Zahlen in anderer Reihenfolge
SNeu= -256.34
Vbetrag= -124.98
Salt=-131.36
dd=(sNeu*100) '25634
d=fix(sNeu*100) '25633
'ddd=int(sNeu*100) '25634
diff0=sneu-salt '-124,98
diff= int(sNeu*100) - fix(sAlt*100) '-12498
vb=fix(vbetrag*100) '12498
vergleich=(vb<>diff) 'false
REM und andere Zahlen
Vbetrag= 265.34
Sneu=0
Salt=-256.34
dd=(sNeu*100) '25634
d=fix(sNeu*100) '25633
ddd=int(sNeu*100) '25634
diff0=sneu-salt '-124,98
diff= int(sNeu*100) - fix(sAlt*100) '-12497
vb=fix(vbetrag*100) '12498
vergleich=(vb<>diff) 'true
''''''''''''''
Mit INT und anderen Zahlen gibt es ähnliche Probleme.
Ich verzweifele!
Was kann ich machen?
Horst
---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org