Re: Falschrechner

2015-11-18 Diskussionsfäden 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: Falschrechner

2015-11-17 Diskussionsfäden 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-17 Diskussionsfäden 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: Re: Falschrechner

2015-11-17 Diskussionsfäden 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: Falschrechner

2015-11-13 Diskussionsfäden 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-12 Diskussionsfäden 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 Diskussionsfäden 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 Diskussionsfäden 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-12 Diskussionsfäden 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 Diskussionsfäden 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