Windows Taschenrechner rechnet falsch

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
siro
Beiträge: 730
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Windows Taschenrechner rechnet falsch

Beitrag von siro »

Beim Programmieren bzw. prüfen von Werten hat Microsoft meine Mathekenntnisse erstaunlich in Frage gestellt.

1 Schritt vom ADU sind Vref / 4096 (12 Bit Wandler)
Also 3,3V / 4096 = 0.0008056640625µV pro Aduschritt

Bei 2048 Steps sind das dann 0.0008056640625*2048 = 1,65 Volt

Dann schiebe ich einen Offset drauf von 20mV
0,02 + 0.0008056640625 * 2048 = 1,67V

Ich hab das grad mit dem Windows Taschenrechner ausgerechnet:
und nun, man staune, kommt: 42.61 Volt raus :shock:

Da kommt man doch wirklich ins grübeln......
Also nochmal 0,02 + 0,0008 * 2048 gerechnet: 42.5984 :roll:

Bin ich jetzt völlig verblödet ??????
Der Taschenrechner macht das falsch.
Er missachtet Punkt vor Strich Rechnung.

Nun wollte ich es in Klammern setzen, aber es gab keine Klammern, da der Rechner auf "Standard" stand.
Also habe ich ihn auf "wissenschaftlich" umgestellt.
Und dann neu gerechnet
0,02 + (0,0008*2048) = 1.6584 stimmt
dann nochmal ohne Klammern
0,02 + 0,0008*2048 = 1.6584 stimmt auch, häää, jetzt geht es

Zurück auf "Standard" gestellt, dann geht es wieder nicht mehr.
Das ist schon merkwürdig.
Der Windows Rechner macht es nur falsch, wenn er im Standard Modus arbeitet.

Beim googeln musste ich nun feststellen, dass es tatsächlich nicht funktioniert,
ich bin ERSCHÜTTERT....... :mrgreen:

Ich hab das Problem beim Windows 8.1 ebenso wie bei Windows 10 Rechner.
Glücklicherweise macht mein alter Tischtaschenrechner es richtig. Ist halt Casio und kein Windoof.

2 + 3 * 7 = 23 normalerweise
Windows = 35 im Standard Modus
Windows = 23 im Wissenschaftlich Modus

Also Vorischt !!!!
Zuletzt geändert von siro am Sa 14. Jul 2018, 08:02, insgesamt 1-mal geändert.
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Windows Taschenrechner rechnet falsch

Beitrag von wp_xyz »

Nicht immer Windows die Schuld geben. Wie jeder andere (einfache) Taschenrechner, rechnet auch der von Windows der Reihe nach und berücksichtigt nicht die Priorität der Operatoren. Für das richtige Ergebnis ist es am einfachsten, die Reihenfolge der Summanden umzudrehen: also zuerst 0.0008566*2048 berechnen und dann 0.02 addieren. (Aber das hast du ja schon geschrieben)

Klammern werden (umständlich) über die Speicher-Funktion gesetzt: "MC" > "0,02" > "M+" > "0,00080566" > "*" > "2048" > "=" > "M+" > "MR"

So war das halt vor 40 Jahren, als ein Taschenrechner noch ein Wunderwerk war. Die jungen Leute heute können wahrscheinlich auch nicht mehr mit einem Rechenschieber umgehen und mit der Logarithmentafel.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Windows Taschenrechner rechnet falsch

Beitrag von Mathias »

Dies ist auch gut so, die meisten Leute rechnen von links nach rechts.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

mischi
Beiträge: 206
Registriert: Di 10. Nov 2009, 18:49
OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x
CPU-Target: 32Bit/64bit

Re: Windows Taschenrechner rechnet falsch

Beitrag von mischi »

Mathias hat geschrieben:Dies ist auch gut so, die meisten Leute rechnen von links nach rechts.

Ich habe die Punkt-vor-Strich Regel so verinnerlicht, dass ich nie im Leben darauf gekommen wäre, das so zu machen und finde es ziemlich katastrophal, es nicht so zu machen. Meiner Meinung nach verursacht das mehr Probleme als gelöst werden. Aber erstmal Danke für den Hinweis. Da wäre ich im Leben nie drauf gekommen.
MiSchi macht die fink-Pakete

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Windows Taschenrechner rechnet falsch

Beitrag von Mathias »

Du bist auch Programmierer, aber frage mal deine Eltern oder Arbeitskollegen.
Die wissen zum teil nicht mal was Multiplizieren heist. Bei denen heist es einfach mal.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Windows Taschenrechner rechnet falsch

Beitrag von wp_xyz »

Mathias hat geschrieben:Dies ist auch gut so, die meisten Leute rechnen von links nach rechts.

Um Gottes Willen!

Damals war Speicher rar, und ein Rechner, der mehr als ein paar Register zum Zwischenspeichern hatte, war schon eine Sensation. Daher hat man notgedrungen von links nach rechts gerechnet, also das Ergebnis einer Operation als linken Operand der folgenden Operation genommen. Und wenn man das wusste, konnte man damit trotzdem richtig rechnen (eben wie oben erwähnt die Reihenfolge umstellen) - ich habe das so verinnerlicht, dass ich eben völlig überrascht war, dass mein alter Casio tasächlich Punkt vor Strich kann.

Aber wenn Menschen von links nach rechts rechnen, weil sie es nicht anders WISSEN! Wo ist unsere vielgepriesene Kultur hin?

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Windows Taschenrechner rechnet falsch

Beitrag von Mathias »

Wen ich dies her lese, können unsere Eltern das gar nicht wissen.

https://www.gutefrage.net/frage/seit-wa ... rich-regel
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Windows Taschenrechner rechnet falsch

Beitrag von wp_xyz »

Ich kann nicht glauben, dass das ein ernsthafter Text ist. In Wikipedia steht das Gegenteil: "Erst in der Neuzeit entwickelte sich die kürzere formelhafte Darstellung mathematischer Sachverhalte mit Zahlen, Bezeichnern und Operatoren. Dabei scheint die Regel „Punkt vor Strich“ von Anfang an vorausgesetzt worden zu sein. Bei René Descartes finden sich Schreibweisen wie z z = a z + b b , die sowohl, wie auch heute noch üblich, den Multiplikationsoperator einfach weglassen (Juxtaposition) als auch davon ausgehen, dass die Multiplikation Vorrang vor der Addition hat."

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Windows Taschenrechner rechnet falsch

Beitrag von Mathias »

Die Bezeichnung Stric vor Punkt kann nicht so sehr alt sein.

Vor gar nicht so langer Zeit hat man eine Multiplikation so geschrieben: 3 x 4
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Windows Taschenrechner rechnet falsch

Beitrag von m.fuchs »

Ach Mathias, *seufz*.
Mathias hat geschrieben:Die Bezeichnung Stric vor Punkt kann nicht so sehr alt sein.

Punkt vor Strich.

Mathias hat geschrieben:Vor gar nicht so langer Zeit hat man eine Multiplikation so geschrieben: 3 x 4

Der Punkt für die Multiplikation wurde eingeführt von Leibniz, belegt ab 1698.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Windows Taschenrechner rechnet falsch

Beitrag von wp_xyz »

m.fuchs hat geschrieben:Der Punkt für die Multiplikation wurde eingeführt von Leibniz, belegt ab 1698.

Ich könnte mir vorstellen, dass das nicht weltweit eingeführt ist. Ich weiß sicher, dass die Leute in USA auf jeden Fall das "x" verwenden. Und wahrscheinlich auch die Schweizer (die haben ja auch einen Dezimalpunkt wie die Amerikaner, statt eines Dezimalkommas wie die Deutschen)

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Windows Taschenrechner rechnet falsch

Beitrag von Warf »

Um ehrlich zu sein habe ich das verhalten genau so erwartet. Auf standard rechnet der Rechner immer auf zwischenergebnis basis, kann also nur 1 operator gleichzeitig betrachten.

Wenn das nicht ausreicht gibt es den Wissenschaftlichen modus, bei dem man Formeln angeben kann, die werden dann auch korrekt evaluiert.

Ich finde das ist auch kein sonderlich großes Problem, da selbst im wissenschaftlichen Modus der Taschenrechner für Formeln recht beschissen ist, und es viel bessere alternativen gibt (z.B. google rechner). Es ist auch nicht so das der Taschenrechner das vor einem verheimlicht, im standard modus wird das zwischenergebnis nach jedem schritt ausgegeben, und jede operation die man daraufhin macht rechnet dann mit dem zwischenergebnis. Im wissenschaftlichen Modus hingegen bekommt man kein Zwischenergebnis. Das einzige was das ganze eventuell etwas verwirrend macht ist die Tatsache das im Standardmodus oben immer die vollständige Formel steht, und das ist natürlich etwas irreführend.

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Windows Taschenrechner rechnet falsch

Beitrag von Timm Thaler »

>> rechnet auch der von Windows der Reihe nach und berücksichtigt nicht die Priorität der Operatoren

Das ist so pauschal falsch.

Im Standardmodus rechnet der Rechner der Reihe nach wie man es eingibt.

Im wissenschaftlichen Modus wird Punkt vor Strich beachtet.

Und das war schon im letzten Jahrhundert so.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Windows Taschenrechner rechnet falsch

Beitrag von wp_xyz »

Timm Thaler hat geschrieben:>> rechnet auch der von Windows der Reihe nach und berücksichtigt nicht die Priorität der Operatoren

Das ist so pauschal falsch.

Im Standardmodus rechnet der Rechner der Reihe nach wie man es eingibt.

Im wissenschaftlichen Modus wird Punkt vor Strich beachtet.

Und das war schon im letzten Jahrhundert so.

Die ganze Diskussion in diesem Thread geht aber über den Standard-Modus.

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Windows Taschenrechner rechnet falsch

Beitrag von Timm Thaler »

Dann kauf Dir mal 20 dieser Billigrechner für 5 Eur, und dann kannst Du Dich bei 20 Herstellern beschweren, dass die falsch rechnen. Die machen das nämlich alle so, und der Windows-Rechner bildet diese Nicht-Funktionalität nach.

Faustregel: Alles was maximal Wurzelfunktion hat, kann keine Punkt-vor-Strich. Hat es erweiterte Funktionen wie x^y, sin, cos, lg, ln, kann es auch Punkt-vor-Strich. Dazu muss es keine Klammern haben, siehe SR1.

Oder einfach: Know your tools!

Antworten