Re: Falschrechner

2015-11-12 Thread Oliver Brinzing

Hi,

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

mir fällt dazu nur folgendes ein:

=Kürzen(...;2) bzw. =Runden(...;2) verwenden

oder:

Menü Extras - Einstellungen - OpenOffice Calc - Berechnen:
->  [X] Genauigkeit wie angezeigt

Gruß
Oliver


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



Re: Falschrechner

2015-11-12 Thread Alois Klotz

Hallo,
das ist nicht nur in Calc so, sondern das Problem tritt auch in 
Programmiersprachen auf.
Man kann daher vernünftigerweise nie zwei berechnete Werte auf 
Gleichheit direkt überprüfen, sondern man muss sie vorher runden oder 
beim Vergleich eine minimale Abweichung akzeptieren - also wenn 
Absolutwert(VarA - VarB) < z.B. 0,1 dann als gleich werten.

MfG Alois
--
www.easy4me.info

technik schrieb am 12.11.2015 um 15:58:

Hallo,

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?

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

Wäre einfacher als =(A7-48,55)<0,001 oder gar =ABS(A7-48,55)<0,001
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.


48,55
-7,25E-013


510,46 +
22082,64 +
22544,55 -
48,55 =SUM
-7,24753590475302E-013 =Sum-48,55



Formel in a6: =A4+A5-A6

Oder die Datei
https://www.dropbox.com/s/pf372p4oo0rrf4s/falschrechner.ods?dl=0



Horst





Re: Falschrechner

2015-11-12 Thread Wolfgang Jäth
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,54 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,54993
raus.

Wolfgang
-- 

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



Re: Falschrechner

2015-11-12 Thread Jörg Schmidt
Hallo,

> From: Wolfgang Jäth [mailto:jawo.ml.hams...@arcor.de] 

> *Du* denkst *dezimal*. Der *Rechner* denkt *binär* (und zwar immer mit
> voller Genauigkeit). 

Sorry, aber genau das stimmt doch hier nicht. Die Rechenungenauigkeiten in Calc
gehen darauf zurück das Calc das gerade nicht tut sondern nur mit einer
Genauigkeit von (ich glaube) 15 Stellen rechnet. Excel übrigens auch.

Tipps (für Excel die sich aber auf Calc übertragen lassen) siehe:
http://www.excelformeln.de/tips.html?welcher=24
http://www.excel-ticker.de/in-excel-mit-sehr-grossen-zahlen-rechnen-teil-1-additio
n/


Gruß
Jörg


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



Re: Falschrechner

2015-11-12 Thread Josef Latt
Auch mit unendlich vielen Nachkommastellen gibt es Ungenauigkeiten.

Am 13.11.2015 um 08:02 schrieb Jörg Schmidt:
> Hallo,
> 
>> From: Wolfgang Jäth [mailto:jawo.ml.hams...@arcor.de] 
> 
>> *Du* denkst *dezimal*. Der *Rechner* denkt *binär* (und zwar immer mit
>> voller Genauigkeit). 
> 
> Sorry, aber genau das stimmt doch hier nicht. Die Rechenungenauigkeiten in 
> Calc
> gehen darauf zurück das Calc das gerade nicht tut sondern nur mit einer
> Genauigkeit von (ich glaube) 15 Stellen rechnet. Excel übrigens auch.
> 
> Tipps (für Excel die sich aber auf Calc übertragen lassen) siehe:
> http://www.excelformeln.de/tips.html?welcher=24
> http://www.excel-ticker.de/in-excel-mit-sehr-grossen-zahlen-rechnen-teil-1-additio
> n/
> 
> 
> Gruß
> Jörg
> 
> 
> -
> 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



Re: Falschrechner

2015-11-13 Thread RA Stehmann
Hallo,

binär zu dezimal und umgekehrt führt in der Tat zu Fehlern. Hierfür gibt
es ein berüchtigtes Beispiel:

Python 3.2.3 (default, Feb 20 2013, 17:02:41)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 0.3+0.6
0.8999
>>> (0.3*10+0.6*10)/10
0.9
>>>

(Neuere Python-Versionen haben diesen Fehler auch noch.)

Wie man sieht kann Python3 mit einem Trick durchaus genau rechnen.

Am problematischsten ist wohl der Umstand, dass Python
0.8999 von 0.9 sehr wohl unterscheidet:

>>> 0.3+0.6 == (0.3*10+0.6*10)/10
False
>>>

Traut keinem Computer ungeprüft!

Gruß
Michael







signature.asc
Description: OpenPGP digital signature


Re: Falschrechner

2015-11-16 Thread technik

Hallo an alle,

danke für die ganzen Antworten. Ist alles nicht so befriedigend. Dass 
dieser Fehler beim Dividieren auftritt kann ich ja noch verstehen, aber 
beim Addieren von Zahlen mit 7 Stellen dürfte so ein Fehler eigentlich 
nicht auftreten.
Ich hätte gedacht, dass inzwischen jemand eine bessere routine gefunden 
hätte, die Addition genau zu machen.
Aber ich vermute, das läßt sich mit dem benutzten System nicht mehr 
verwirklichen.
Vielleicht sollte ich meine Kasse auf Cent statt Euro umstellen, dann 
könnte ich Integers benutzen :-)


Aber zumindest werde ich aufpassen und wenn ich genaue Werte brauche auf 
Integers setzen.


Horst

Am 13.11.2015 um 08:02 schrieb Jörg Schmidt:

Hallo,


From: Wolfgang Jäth [mailto:jawo.ml.hams...@arcor.de]
*Du* denkst *dezimal*. Der *Rechner* denkt *binär* (und zwar immer mit
voller Genauigkeit).

Sorry, aber genau das stimmt doch hier nicht. Die Rechenungenauigkeiten in Calc
gehen darauf zurück das Calc das gerade nicht tut sondern nur mit einer
Genauigkeit von (ich glaube) 15 Stellen rechnet. Excel übrigens auch.





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



Re: Falschrechner

2015-11-16 Thread Jörg Schmidt
Hallo, 

> From: technik [mailto:technik_...@jrsch.de] 

> danke für die ganzen Antworten. Ist alles nicht so befriedigend. Dass 
> dieser Fehler beim Dividieren auftritt kann ich ja noch 
> verstehen, aber 
> beim Addieren von Zahlen mit 7 Stellen dürfte so ein Fehler 
> eigentlich 
> nicht auftreten.

Ach, warum denn nicht (da Du ja augenscheinlich veerstehst warum er beim
Dividieren auftritt)?

> Ich hätte gedacht, dass inzwischen jemand eine bessere 
> routine gefunden 
> hätte, die Addition genau zu machen.

Hierzu kenne ich die Absichten der OO und LO-Programmierer nicht. 

Bei OOo war bei Calc eine möglichst weitgehende Formelkompatibilität zu MS Excel
das Ziel und das würde dann auch hier gelten, denn auch Excel hat diese
Begrenzungen.

> Aber ich vermute, das läßt sich mit dem benutzten System nicht mehr 
> verwirklichen.

Doch, genau das ist möglich, ich hatte es doch extra verlinkt:
http://www.excel-ticker.de/in-excel-mit-sehr-grossen-zahlen-rechnen-teil-1-additio
n/

auch um dadurch deutlich zu machen das es sich bei dem Problem um eine 
Begrenzung
der Implementierung handelt und um keine technische Grenze, denn die Lösung im
Link braucht keine Zusatzsoftware sondern nutzt das vorhandene 'System', also
Excel, es geht mit Caslc aber genauso.

Im Übrigen gibt es für Excel auch fertige AddIns, für Calc weiß ich das monentan
nicht.



Gruß
Jörg


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



Re: Falschrechner

2015-11-17 Thread RA Stehmann
On 16.11.2015 23:05, technik wrote:

> Vielleicht sollte ich meine Kasse auf Cent statt Euro umstellen, dann
> könnte ich Integers benutzen :-)
> 
Diese Idee ist gar nicht einmal so falsch (jedenfalls wenn Du nicht mit
Bruchteilen von Cents (Benzinpreise, Devisenkurse, Börsenkurse etc.)
rechnen musst). Wenn man dann am Ende durch 100 teilt, was meist ohne
"Unfälle" möglich ist, hat man ein Ergebnis, dem man etwas mehr
vertrauen kann.

Gruß
Michael




signature.asc
Description: OpenPGP digital signature


Re: Falschrechner

2015-11-17 Thread RA Stehmann
On 17.11.2015 07:42, Jörg Schmidt wrote:

>> Ich hätte gedacht, dass inzwischen jemand eine bessere 
>> routine gefunden 
>> hätte, die Addition genau zu machen.
> 
> Hierzu kenne ich die Absichten der OO und LO-Programmierer nicht. 

Das Problem ist IMO, dass die Fehler schon in den grundlegenden
Programmiersprachen auftreten. Sie sind wohl für binäre Computer
fundamental. Man müsste also "Workarounds" mit allen "Risiken und
Nebenwirkungen" schreiben.

Gruß
Michael




signature.asc
Description: OpenPGP digital signature


Re: Falschrechner

2015-11-17 Thread technik

hallo,

Am 17.11.2015 um 09:47 schrieb RA Stehmann:

On 17.11.2015 07:42, Jörg Schmidt wrote:
Das Problem ist IMO, dass die Fehler schon in den grundlegenden
Programmiersprachen auftreten. Sie sind wohl für binäre Computer
fundamental. Man müsste also "Workarounds" mit allen "Risiken und
Nebenwirkungen" schreiben.
Genau das meinte ich. Ich hatte früher mal in Assembler reingeschaut und 
auch mal was einfaches programmiert. Alles was wir heute haben basiert 
ja darauf. Jede Zahl ist genau auf 0 oder 1 am Ende. Nur die Umwandlung...
Die damaligen Fehler wurden mitgenommen. Den Y2k Fehler hatte man ja 
damals in den Griff bekommen, aber an der Dekodierung einer Dezimalzahl 
kann man nichts mehr ändern, außer man beginnt ganz von vorne.
Genau sind ja auch andere Standards praktisch festgelegt. Praktisch alle 
Schnittstellen, an denen Austausch stattfindet.
Das heißt, man muss auf Anwenderseite den Fehler abfangen. Gut, das war 
mir bisher nicht wirklich klar.


Als ich heute morgen meinem Sohn den Fehler erklärte, wurde mir klar, 
dass wir auch im Papierzahlenbereich einen ähnlichen Fehler haben. 1/3 
+2/3 können wir rechnen. In Dezimal gibt es einen Fehler. 0,9_ <>1 
Das denken wir uns weg.


Horst



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



Re: Falschrechner

2015-11-17 Thread Jörg Schmidt
Hallo, 

> From: RA Stehmann [mailto:anw...@rechtsanwalt-stehmann.de] 

> Das Problem ist IMO, dass die Fehler schon in den grundlegenden
> Programmiersprachen auftreten. 

Das weiß ich nicht konkret und wollte deshalb (schon vor einigen Tagen) nichts
dazu schreiben, weil genau das ein Aspekt ist der die Entscheidung der
Programmierer beeinflusst haben könnte.

> Sie sind wohl für binäre Computer
> fundamental. 
> Man müsste also "Workarounds" mit allen "Risiken und
> Nebenwirkungen" schreiben.

Eigentlich nicht. Ich habe doch gerade deswegen betont das man die Berechnung 
auch
mit Calc bzw. Excel-Bordmitteln richtig durchführen kann und weil das so ist ist
es augenscheinlich eine Implementierungsfrage in Calc/Excel und nicht des,
verkürzt gesagt, Kompilers oder der Betriebssystemumgebung allgemein.



Gruß
Jörg


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



Re: Falschrechner

2015-11-17 Thread Jörg Schmidt
Hallo, 

> From: technik [mailto:technik_...@jrsch.de] 

> Genau das meinte ich. Ich hatte früher mal in Assembler 
> reingeschaut und 
> auch mal was einfaches programmiert. Alles was wir heute 
> haben basiert 
> ja darauf. 

Aber das tut nichts Negatives zur Sache, denn nun zum Dritten Male: Calc kann 
mit
Bordmitteln richtig rechnen, man muss es nur programmieren. Es gibt keine
Begrenzung diesbezüglich, sondern es ist ein Implementierungsproblem.

Wäre es anders brauchte es Zusatzsoftware (z.B. zusätzliche 
Programmbibliotheken)
um innerhalb von Calc das ganz genaue Rechnen zu implementieren, aber die 
braucht
es nicht, es ist alles vorhanden so wie Calc ist, einzig greift Calc nicht auf 
die
Möglichkeiten zurück, jeder kann das aber selbst tun wenn er Makros schreiben
kann.

 
Jede andere Interpretation steht ungefähr auf denselben Füssen wie die Aussage 
man
kann mit einem Taschenrechner nur Quadratzahlen berechnen wenn er dafür eine
spezielle Taste hat (unter Ignorierung das man auch mit der *-Taste das Produkt
zweier gleicher Zahlen berechnen kann und damit die Quadratzahl hat).



Gruß
Jörg


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



Re: Falschrechner

2015-11-18 Thread RA Stehmann
On 18.11.2015 08:24, Jörg Schmidt wrote:

> Und ja, man kann echte Begrenzuungen einer verwendeten Programmiersprache 
> klar von
> Sachverhalten unterscheiden die nur auf Implementierungsentscheidungen
> zurückgehen.
> 
"Implementierungsentscheidungen" sind immer eine Abwägung. Natürlich
kann man in jeder Programmiersprache (Du hast es ja für Calc quasi
"bewiesen") Routinen einbauen, die ein genaueres Rechnen mit
Dezimalzahlen ermöglichen. Nur ist dies nicht nur Programmieraufwand,
sondern die Ausführung dieser Routinen ist auch Rechenaufwand und kostet
letztendlich Rechenzeit (oder anders ausgedrückt, es verlangsamt die
Programmausführung).

Dann stellt sich natürlich die Frage nach Aufwand und Ertrag. In wieviel
Prozent der Fälle führen die Routinen tatsächlich zu relevant genaueren
Ergebnissen und in wieviel Prozent der Fälle ist das dem Nutzer dann
noch egal (entweder aus Ignoranz oder weil der errechnete Wert eh'
jenseits aller Mess- oder sonstigen Genauigkeiten liegt)?

Ich glaube daher, dass man zu dem Ergebnis gelangen kann, dass man
denen, die auf genauere Berechnungen Wert legen, eigene diesbezügliche
Vorsorge zumuten kann und muss.

Gruß
Michael

My computer has no brain; so I have to use my own.







signature.asc
Description: OpenPGP digital signature


Re: Re: Falschrechner

2015-11-17 Thread Matthias Müller
Am Dienstag, 17. November 2015, 16:40:14 schrieb Jörg Schmidt:
> Hallo,
> 
> > From: RA Stehmann [mailto:anw...@rechtsanwalt-stehmann.de]
> > 
> > Das Problem ist IMO, dass die Fehler schon in den grundlegenden
> > Programmiersprachen auftreten.
> 
> Das weiß ich nicht konkret und wollte deshalb (schon vor einigen Tagen)
> nichts dazu schreiben, weil genau das ein Aspekt ist der die
> Entscheidung der Programmierer beeinflusst haben könnte.
Das ganze ist nicht nur ein Problem der Programmiersprache _und_ der 
verwendeten Algorithmen (vor allem der Algorithmen), sondern auch ein 
Problem der Zahlendarstellung. Bei Binär-Computern (damit sind auch 
Taschenrechner gemeint) haben wir grundsätzlich das Problem, dass sich 
Gleitkommazahlen grundsätzlich nicht als Zweierpotenz, also binär, endlich 
abbilden lassen. Die ganz banale Zahl 2/3 ( zwei drittel) lässt sich analog 
als 0,666... darstellen.  Wobei die drei Punkte andeuten sollen, dass 
unendlich viele 6 kommen. Mach das mal mit einer 52bit-Mantisse mit 11bit-
Exponent. Kann uU ungenau werden.

Das ganze nennt sich Maschinenungenauigkeit und Rechnen mit 
Gleitkommazahlen:
https://de.wikipedia.org/wiki/Gleitkommazahl
https://de.wikipedia.org/wiki/Maschinengenauigkeit

-- 
Mit freundlichen Grüßen
Matthias Müller
(Benutzer #439779 im Linux-Counter http://counter.li.org)
PS: Bitte senden Sie als Antwort auf meine E-Mails reine Text-Nachrichten!

signature.asc
Description: This is a digitally signed message part.


Re: Re: Falschrechner

2015-11-17 Thread Jörg Schmidt
Hallo, 

> From: Matthias Müller [mailto:matth_mueller_...@posteo.de] 

> Das ganze ist nicht nur ein Problem der Programmiersprache [...]

Das ist es sogar am Allerwenigsten, was ich nun bereits mehrfach betont habe und
zu verdeutlichen versucht habe.

> Mach das mal mit einer 52bit-Mantisse mit 11bit-
> Exponent.

Warum sollte ich? Warum sollte ich mir Rahmenbedingungen für die Implementierung
suchen wo ich von vornherein weiß ich werde bei der Genauigkeit scheitern?

Wir (als Menschen) wissen wie man mit Brüchen genau rechnet und ich als
Programmierer weiß wie ich sowas auch in einem Programm implementieren kann. 
Warum
reden wir stattdessen immer über Dezimalzahlen um uns dann beruhigt 
zurückzulehnen
weil es damit nicht genau geht? Kapiere ich nicht.

Aber selbst das (warum das nicht umgesetzt wird) ist ja nicht das eigentliche
Thema hier gewesen, sondern es geht (mir) eigentlich nur um die Klarheit das die
rechnerischen Ungenauigkeiten in Calc eine Frage der 
Implementierungsentscheidung
sind und eben nicht der Programmiersprache oder der Betriebssystemumgebung, etc.
... und das nicht nur in allgemeiner Aussage sondern gant konkret im 'Hier und
Heute' denn Calc hat bereits alles an Bord um genau rechnen zu können.

Anmerkung:
Es geht mir auch garnicht darum das es in Calc anders gemacht werden soll, denn
die heutige Implementierung ist aus Kompatibilitätsgründen sehr wahrscheinlich
sinnvoll. 
Es geht mir nur darum das ich hier (im Thread insgesamt) viele Dinge zur
Begründung gelesen habe die ich auf rein technischer Ebene für falsche
Begründungen halte. 
Und ja, man kann echte Begrenzuungen einer verwendeten Programmiersprache klar 
von
Sachverhalten unterscheiden die nur auf Implementierungsentscheidungen
zurückgehen.


Gruß
Jörg


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