Hallo,

Das Problem entsteht durch die Fließkommaarithmetik. Diese spielt insbesonders beim Teilen eine Rolle.

Versuch die 1,8 doch einfach mal binär nachzubauen.

https://www.electronics-tutorials.ws/binary/binary-fractions.html

laut https://www.rapidtables.com/convert/number/decimal-to-binary.html

1.11001100110011001101

wandel ich die zahl nun zurück - BAM

1.80000019073486328125


wir rechnen hier mit 20 stellen, benutzt 52 stellen. Wir könnten versuchen eine eigene Darstellung zu programmieren,

aber dies geht massiv zu lasten der performance, deswegen wird allgemein der Fehler nur weggerundet.


Der Fehler tritt Vielleicht erst während der Rechnung auf wie Mathias schon beschrieben hat wenn du die Formel umstellst:

=A1-(A2+A3+A4+A5+A6+A7+A9)

bekommst du den Fehler auch nicht.


Beste Grüße

Peter

Am 06.06.23 um 03:26 schrieb Deacon:
Hallo. Danke für die Antwort.
Interessanter Artikel, bei dem aber das Problem mit Brüchen erläutert
wird, worüber ich binär nur leider im Ansatz irgendwas gelesen habe;
ging wohl um Bit-Shiften, glaube ich (rol-ror)
Allerdings hab ich das Problem mit "einfacher" Subtraktion. Die
Gegenprobe mit Addition in Klammern:
Ausgangszahl-(subtrahend+subtrahend+subtrahend (usw)) funktioniert. Das
rechnen mit dem Taschenrechner unter Windows funktioniert auch.
Das scheint wohl nur ein Problem mit Subtraktion und Kommastellen zu
sein. Einfache Subtraktion (ohne Nachkomma) scheint zu funktionieren.
Ist natürlich für eine "Bauzeichnung" schon interessant, die exakten
Werte auszuloten.
Ich hab auch mal mit den Zahlen gespielt. Jede weitere Abstraktion
funktioniert 1A! z.B. statt (A10=1,8) (A10=1,7) kommt zum richtigen
Ergebnis, austauschbar auch mit anderen Zellen und anderen Zahlen, z.B.
statt 1,8 habe ich 1,79 genommen, das Ergebnis ist daraufhin korrekt.
Ich habe den Verdacht das ausschliesslich diese u. aufgelistete
Kombination zu einem Fehler führt, wie gesagt, das ist eigentlich nur
einfachste Subtraktion.
Vielen Dank!
Beste Grüsse!


Am 04.06.2023 um 18:49 schrieb Peter Kovacs:
 Hallo,


das hängt mit der Fließkomma Arithmetik zusammen.

schau mal hier:

https://py-tutorial-de.readthedocs.io/de/python-3.3/floatingpoint.html

Hast du eine Idee wie es besser geht?


Beste Grüße

Peter

Am 04.06.23 um 13:58 schrieb Deacon:
Hallo.
Ich versuche es mal ganz ungezwungen.

Ich habe einen reproduzierbaren Fehler entdeckt.

Ich schreibe Zellenkoordinaten und darauf gleich den eingetragen Wert
als Eingetragung (in Klammern)

A1 (200)
A2 (leer)
A3 (=14+1,8)
A4 (=14+1,8)
A5 (=14+1,8)
A6 (=63+1,8)
A7 (=33,1+1,8)
A8 (=49,3+1,8)
A9 (leer)
A10 (1,8)
A11 (leer)
A12 (leer)
A13 (leer)
A14 (=A1-A2-A3-A4-A5-A6-A7-A8-A9-A10-A11-A12-A13)

Ergebnis ist -2,4203E-014

sollte aber sein = 0

Vielen Dank

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-de-h...@openoffice.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-de-h...@openoffice.apache.org

Antwort per Email an