# Genauigkeit bei FLOAT\_TO\_REAL

**URL:** <https://oscat.discourse.group/t/genauigkeit-bei-float-to-real/633>\
**Category:** Bestehende Module / Existing Modules\
**Created:** [2. Juli 2009 um 09:47 UTC](https://oscat.discourse.group/t/genauigkeit-bei-float-to-real/633 "2009-07-02T09:47:21Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/oscat/original/1X/2efdfb9c592ff9a666c94dff124ee84fa863dae5.jpeg) [@system](https://oscat.discourse.group/u/system)\
**Post date:** [2. Juli 2009 um 09:47 UTC](https://oscat.discourse.group/t/genauigkeit-bei-float-to-real/633/1 "2009-07-02T09:47:21Z")

</div>

Hallo,  
bei der Funktion FLOAT\_TO\_REAL wird ein String der Länge 20 als Eingabe genommen.  
Gibt man aber z.B. den String ‘0,2504802518’ an (12 Zeichen), so wird leider nicht das korrekte  
Ergebnis geliefert, weil intern ein Überlauf der DINT-Variablen tmp entsteht… UDINT verschiebt den Überlauf  
auch nur um eine Stelle.

Zur Lösung des Problems fallen mir nur zwei Möglichkeiten ein (die aber beide nicht so toll sind..)  
entweder muss nach einer bestimmten Anzahl an Ziffern runden oder es muss als Zwischenvariable ein REAL verwendet werden…  
das ist natürlich für die Steuerungen ohne FPU nicht gut… ☹

Hat sonst noch jemand Ideen?

---

<div class="post-metadata">

**Author:** ![hugo](https://yyz2.discourse-cdn.com/free1/user_avatar/oscat.discourse.group/hugo/32/133_2.png) [@hugo](https://oscat.discourse.group/u/hugo)\
**Post date:** [2. Juli 2009 um 12:40 UTC](https://oscat.discourse.group/t/genauigkeit-bei-float-to-real/633/2 "2009-07-02T12:40:15Z")

</div>

das problem ist gar nicht der überlauf von dint  
die ausgangsvariablke real kann nur 7-8 stellen darstellen.

eine zahl mit mehr als 7 relevanten stellen wird dadurch begrenzt.

schau dir mal in wickipedia unter float bzw gleitpunktzahl die grundlagen eines real an.

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/oscat/original/1X/2efdfb9c592ff9a666c94dff124ee84fa863dae5.jpeg) [@system](https://oscat.discourse.group/u/system)\
**Post date:** [2. Juli 2009 um 13:08 UTC](https://oscat.discourse.group/t/genauigkeit-bei-float-to-real/633/3 "2009-07-02T13:08:07Z")

</div>

könnte man das einlesen nicht evtl. begrenzen.. sonst muss man ja vorher immer den String zurecht schneiden  
.. oder gibt es da etwa auch schon eine passende Funktion von OSCAT? 😉

---

<div class="post-metadata">

**Author:** ![hugo](https://yyz2.discourse-cdn.com/free1/user_avatar/oscat.discourse.group/hugo/32/133_2.png) [@hugo](https://oscat.discourse.group/u/hugo)\
**Post date:** [2. Juli 2009 um 20:17 UTC](https://oscat.discourse.group/t/genauigkeit-bei-float-to-real/633/4 "2009-07-02T20:17:23Z")

</div>

nein denn da kann auch ein minus davorstehen, bzw viele nullen die nullen gehen aber nicht in die genauigkeit ein
