WinDoof wirklich so doof?

Posted By: alibaba

WinDoof wirklich so doof? - 08/08/12 12:11

Wenn man in den Rechner Wurzel(4) eingibt, dann - 2 rechnet, dann kommt:
-wenn man im wissenschaftlichen modus ist:
-8,1648465955514287168521180122928e - 39 raus.
- wenn man im normalen modus ist:
-1,068281969439142e - 19 raus.

Klingt ein wenig falsch..
Posted By: Sajeth

Re: WinDoof wirklich so doof? - 08/08/12 12:21

Und wenn man das Ergebnis -2 rechnet, kommt aber wieder -2 raus... lustig laugh
Posted By: MasterQ32

Re: WinDoof wirklich so doof? - 08/08/12 12:48

das liegt am double grin
die sind ja nicht absolut genau, was wurzeln ausrechnen geht (was ja eig. auch nur bei quadratzahlen exakt zu rechnen geht)
heißt aber auch, das wenn du wurzel(4) nimmst, kommt da 2,000000000000000329746 raus. Zeigt er aber nicht an, wäre ja zu viel unnötige information
wenn du jetzt aber -2 rechnest, kommt 0,000000000000000329746 raus, was ja iwie erst ab 329 interessant wird, heißt, das wird dargestellt
rechnet man wieder -2, wird wieder gerundet ^^

alles geklärt?
Posted By: alibaba

Re: WinDoof wirklich so doof? - 08/08/12 12:54

Ist doch für normalor unnormal uninteressant!
Posted By: MasterQ32

Re: WinDoof wirklich so doof? - 08/08/12 12:57

ja, aber wenn du jetzt 3*10^-4 + 4*10^-5 rechnest, sollte er es doch auch anzeigen, oder?
Posted By: FBL

Re: WinDoof wirklich so doof? - 08/08/12 15:42

Originally Posted By: alibaba
Wenn man in den Rechner Wurzel(4) eingibt, dann - 2 rechnet, dann kommt:
-wenn man im wissenschaftlichen modus ist:
-8,1648465955514287168521180122928e - 39 raus.
- wenn man im normalen modus ist:
-1,068281969439142e - 19 raus.

Klingt ein wenig falsch..


Ist doch quasi 0. Sehe da nichts falsches, von einer den Datentypen geschuldeten Ungenauigkeit mal abgesehen.
Mit "doof" hat das nichts zu tun, eigentlich auch nciht wirklich mit Windows.
Posted By: Superku

Re: WinDoof wirklich so doof? - 08/08/12 16:10

Da meines Wissens nach alle Wurzel-Algorithmen iterativ verfahren, sprich solange arbeiten, bis eine gewisse Fehlerschranke unterschritten oder die maximale Anzahl an Schritten erreicht worden ist, darf man dabei auch nicht auf mathematisch theoretisch exakte Ergebnisse hoffen, selbst wenn es nicht an der beschränkten double-Genauigkeit läge.
Posted By: Harry Potter

Re: WinDoof wirklich so doof? - 08/09/12 09:31

Die Ungenauigkeiten bei der Wurzelberechnung sind ja okay, und sie erklären auch das Problem.
Aber ich denke, darum geht es hier gar nicht.

Meiner Meinung nach ist das ein Programmfehler. Und zwar ein Fehler in der "Benutzeroberfläche".
Wenn ein Ergebnis von 2,000000000000000329746 herauskommt, dann sollte das am besten auch so angezeigt werden. Und wenn es auf 2,0 abgeschnitten wird, was ja auch okay ist, dann muss das Programm aber nachher auch mit diesem abgeschnittenen Wert weiterrechnen, und nicht mit dem zuvor intern berechneten genaueren Wert.

Ich finde, ob der User den Wert 2,0 händisch eingibt, oder ob dieser Wert zuvor irgendwie berechnet wurde, darf keinen Unterschied machen. Wenn am Display als Ergebnis 2,0 steht, dann erwartet der Anwender, dass auch mit diesem Wert 2,0 weitergerechnet wird.
Posted By: Lukas

Re: WinDoof wirklich so doof? - 08/09/12 13:01

@Harry Potter: Tut mir leid, aber bei den vielen Nachkommastellen, die man dafür bräuchte um zu zeigen, dass das Ergebnis nicht wirklich 2 ist, bräuchte man mehr Nachkommastellen als der Taschenrechner angeben kann. Dein Beispiel war 2,000000000000000329746, aber -8,1648465955514287168521180122928*10^-39 + 2 = 2,0000000000000000000000000000000000000081648465955514287168521180122928. So viele Stellen kann der Windows-Taschenrechner nicht anzeigen, also muss er es auf 2 runden. Und die -8,1648465955514287168521180122928*10^-39 sind auch schon gerundet zur maximalen Anzahl an Stellen, die der Taschenrechner anzeigen kann, also wären das in Wahrheit noch mehr Stellen.

Und ich möchte auch nicht, dass der Taschenrechner mit den Werten, die er anzeigt weiterrechnet. Für mich ist ein Taschenrechner SCHLECHT wenn 1/3*3 = 0,999999999 ergibt.
Posted By: Harry Potter

Re: WinDoof wirklich so doof? - 08/09/12 15:36

@Lukas: Dann muss zumindest irgendwie angezeigt werden, dass der am Display angezeigte Wert unvollständig bzw. abgeschnitten ist.
Aber den Wert 2 anzeigen, und dann mit 2,0000000000000000000000000000000000000081648465955514287168521180122928 weiterrechnen, finde ich nicht okay.
Das kann in manchen Fällen sinnvoll sein, aber in manchen Fällen für den User auch zu einem unerwünschten/falschen Ergebnis führen.

Also wenn am Display "2" als Ergebnis steht, dann gehe ich davon aus, dass das Ergebnis eine ganze Zahl ist. Und dann gehe ich auch davon aus, dass nachfolgende Rechenoperationen mit genau dieser ganzen Zahl weiterrechnen. Wenn dem nicht so ist, dann sollte dort z.B. stehen: "2,000000000000000000000". Dann weiß man sofort, dass der Wert keine ganze Zahl ist (bei 0,3333333333333333 merkt man das ja auch sofort, aber bei 2 merkt man das nicht).
Posted By: FBL

Re: WinDoof wirklich so doof? - 08/09/12 15:59

Ich sehe nach wie vor keinen Fehler.
Es wird mit der (den Rahmenbedingungen entsprechend) möglichen Genauigkeit gerechnet und mit der möglichen Stellenanzahl angezeigt.

Das alles ist logischer und nachvollziehbarer, als wenn irgendwie an den Werten "rumgepatcht" wird.

Man könnte natürlich anzeigen, dass das "Display" nicht ausreichend Nachkomamstellen darstellen kann. Halte ich aber nicht für so unglaublich wichtig. Gut, das mag jeder anders sehen.
Posted By: Lukas

Re: WinDoof wirklich so doof? - 08/09/12 16:30

Nun ja, was man dem Windows-Taschenrechner vielleicht schon vorwerfen kann ist, dass er bei Wurzeln aus Ganzzahlen erstmal nach ganzzahligen Zahlen suchen könnte oder mehr Iterationen machen könnte um sowas zu verhindern.
Jedenfalls haben andere Taschenrechner das Problem nicht, aber ich glaube das liegt nur daran, dass die mit kleineren Genauigkeiten rechnen, so dass die Zahl auch intern zu exakt 2,000 gerundet wird. Man könnte sagen, dass er in einer bestimmten Hinsicht "zu gut" ist, so wie meine letzte Lasermaus, die so weit über der Tischplatte noch funktioniert, dass es anfangs genervt hat. grin
Vielleicht sollte der Taschenrechner dann einfach mehr Iterationen ausführen, aber das könnte bei sehr hohen Zahlen zu langsam werden. Man merkt ja schon, dass der Taschenrechner im Wissenschaftlichen Modus mit mehr Iterationen rechnet als im normalen.

Ich muss auch meinen letzten Post korrigieren: Weil bei -8,1648465955514287168521180122928*10^-39 vorne ein Minus steht, wäre eigentlich -8,1648465955514287168521180122928*10^-39 + 2 = 1,999999999999999999999999999999999999991835153405
© 2024 lite-C Forums