Am 12.11.2015 um 15:58 schrieb technik:
> 
> ich habe schon wieder so einen dummen Fehler, wo das Programm 
> anscheinend falsch rechnet.
> a+b-c=d aber dann ist d<>d; Abweichung 10E-13 aber für die Überprüfung 
> ergibt das eben ein Falsch.
> 
> Kommt das bei Euch auch raus oder rechnet mein Rechner falsch?

Ja; nein. Das sind technisch bedingte Rundungsfehler.

> Gibt es keine Möglichkeit solche Fehler zu vermeiden, wenn man 
> =(A7=48,55) rechnet?

| =(Runden(A7;2)=Runden(48,55;2))

(ggf. auch AB~/AUF~; wichtig ist, immer *beide* Vergleichswerte auch
*gleich* zu behandeln)

> Wäre einfacher als =(A7-48,55)<0,001 

Dumm nur, wenn A7 < 48,549999 ist ...

> Ich weiß, dass es wohl ein Problem der Fließkommarundung ist, aber 
> trotzdem ist da irgendetwas schief, wenn der Rundungsfehler von 10E-13 
> bei zwei Nachkommastellen nicht abgefangen wird.

*Du* denkst *dezimal*. Der *Rechner* denkt *binär* (und zwar immer mit
voller Genauigkeit). Aber nicht jeder dezimal endliche Wert ist erstens
auch *binär* als /endlicher/ Wert darstellbar (genauso wenig wie es im
dezimalen Zahlenraum solche Werte gibt, z. B. 1/3), und zweitens muss
bei Rechenoperationen manchmal die Genauigkeit beschnitten werden, so
dass auch die Verknüpfung endlicher Werte manchmal einen nicht-endlichen
Wert ergeben kann.

Und bei der Subtraktion in A6 kommt halt nun mal 'nur' 48,5499999999993
raus.

Wolfgang
-- 

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

Antwort per Email an