Datantyp REAL Werte-Bereich geht bei Addition nur bis 8192

carepicha

Level-1
Beiträge
49
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Liebes SPS Forum,

Mir stellt sich folgende Frage:

Mit dieser Addition ist der maximal dargestellte Wert 8192.
rBSZ.PNG

Code:
rBSZ                :    REAL    ;
rBSZAuto := rBSZAuto + 0.0002777777;    (*+1[s], in [h] dargestellt *)

Es ist mir bewusst dass mit einem LREAL dies behoben werden kann. Mich interessiert aber der technische Hintergrund warum dies so ist.

Wertebereich gemäss Homepage Beckhoff
Zulässige Werte für REAL: 1.175494351e-38 bis 3.402823466e+38
Zulässige Werte für LREAL: 2.2250738585072014e-308 bis 1.7976931348623158e+308

Danke für Eure Erklärungen/Unterstützung
 
Googel mal nach "Gleitkommazahl Auslöschung".
Für einen Programmierer ist das ein sehr wichtiger Punkt den man bei der Verwendung von Gleitkommazahlen wissen sollte.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gleitkomma Datentypen sind nicht einfach zu verstehen.
Bei einem Wert von 8191,9995 ist die Mantisse voll und der nächste größere Wert (in den von dir gewählten Schritten) kann nicht mehr dargestellt werden.
 
Es ist nicht der Wert 8192, sondern der Unterschied zum anderen Wert 0.0002777777. Bei der Addition der beiden Werte werden die Exponenten angepasst. Und die Differenz zwischen den beiden Werten lässt sich in den 23 Bits der Mantisse nicht mehr darstellen.
 
Zurück
Oben