TIA Subtraktion von 2 Realzahlen

Zuviel Werbung?
-> Hier kostenlos registrieren
Fast jede Real-Operation kostet mich in irgendeiner Form Genauigkeit.
[..]
Daher sollte man die klassischen Real eigentlich sehr, sehr sparsam einsetzten.

Denkst du nicht dass beim Integer-Division Genauigkeit verloren geht ?
4/3 = 1 (korrekter wäre 1.33333)

Und beim Integer-Multiplikation geht das Ergebniss sehr schnell in die Sättigung.
123 * 456 = -9448 (korrekt wäre 56088).

Egal ob Ganzahl oder Fliesskomma Aritmetik, man muss wissen womit man arbeitet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Denkst du nicht dass beim Integer-Division Genauigkeit verloren geht ?
4/3 = 1 (korrekter wäre 1.33333)

Und beim Integer-Multiplikation geht das Ergebniss sehr schnell in die Sättigung.
123 * 456 = -9448 (korrekt wäre 56088).

Egal ob Ganzahl oder Fliesskomma Aritmetik, man muss wissen womit man arbeitet.
Jesper ich denke du weißt auch, dass man bei Int oder Dint vorher überlegt welche Ergebnisse man in welcher Größenordnung erwartet.
Wenn ich dann halt 4/3 brauche, dann erwitere ich halt und teile 400/300.
Ist halt das gleiche Themen bei den Achsen. Siemens arbeitet da auch mit 1µm Auflösung obwohl es die Hardware oft gar nicht hergibt.
Oder bei den Analogwerten werden die 11Bit -Auflösung auch linksbündig abgelegt.

Dein Fazit, dass man Wissen muss, was man tut ist auf jeden Fall richtig :)
 
Jesper ich denke du weißt auch, dass man bei Int oder Dint vorher überlegt welche Ergebnisse man in welcher Größenordnung erwartet.
Wenn ich dann halt 4/3 brauche, dann erwitere ich halt und teile 400/300.
So habe ich vorher auch gemacht.
Besonders wenn ich von S5 nach S7 kam.
Es wird aber kompliziert, und schwierig bis auf unmöglich vorherzusagen welche Werte ins Spiel kommen.
Heute konvertiere ich sofort auf Engineeringwerte, und arbeite im Programm nur mit die Eingineeringwerte.
Das Programm ist vielmehr lesbar und einfacher zu warten.
Beim Zähler, zähle ich mit Ganzzahlen und konvertiere als letzten Schritt ins Engineeringwert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Warte mal ....

400/300 = 1 mit Ganzzahlaritmetik.

Du meinst 400/3 = 133, und 2 Nachkommastellen sind implizit einverstanden.
Damit sieht man wie man mit diese Verfahren aufpassen muss.
Da hast du natürlich recht.

Was man heute auch ganz selten in Programmen sieht, ist dass mit Brüchen gerechnet wird.
Damit gibt es deutlich weniger Rundungs- und Wandlungsfehler. War zu den S5-Zeiten deutlich mehr verbreitet, da damals die Gleitpunktfunktionen verdammt langsam waren.
 
Weil man es sich früher, zu S5-Zeiten, noch leisten konnte jede Anlage bis zur absoluten Perfektion zu optimieren. Und natürlich auch, weil zu S5-Zeiten die Zahl der Messwerte ziemlich eng begrenzt war.
Da konnte man sich das noch erlauben zu überlegen, in welchem Bereich ein Messwert wohl liegen könnte und das dann in Brüche zerlegen...

Heute? Heute hat man einen, vielleicht 2 Standardbausteine, mit denen man Istwerte einliest, skaliert, überwacht. Und ein System muss für alles funktionieren, egal ob Drehzahl 100 oder Drehzahl 100.000rpm.

Würde mich auch interessieren, welche hochgenaue Sensorik es gibt, bei der in der Fehlerrechnung die Genauigkeit der Real-Verarbeitung in der Steuerung eine Rolle spielt. Hab ich jedenfalls noch nie gesehen, dass das eine nennenswerte bzw. überhaupt eine Rolle spielt.

Ist also wieder viel Theorie und akademische Debatte, weil man einfach irgendwas gesagt haben muss ;)
 
Zurück
Oben