Gleitkommazahl in INT darstellen

taylor1982

Level-2
Beiträge
34
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte gerne eine Kommazahl in einer INT-Zahl darstellen. Konkret geht es um werte von 0.0 bis 100.0 Prozent.
Diese möchte ich nach Möglichkeit so darstellen, dass z.B. der Wert 47.0 im INT-Format als 470 ausgegeben wird.

Wie stellt man das programmtechnisch am besten an?

Wäre dankbar für eure Unterstützung!

Stefan
 
die gleitpunktzahl mit 10 multiplizieren
und dann nach int wandeln (RND-befehl).
evtl. vor dem wandeln noch 0,5 hinzuaddieren,
damit das runden genauer wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte gerne eine Kommazahl in einer INT-Zahl darstellen. Konkret geht es um werte von 0.0 bis 100.0 Prozent.
Diese möchte ich nach Möglichkeit so darstellen, dass z.B. der Wert 47.0 im INT-Format als 470 ausgegeben wird.

Wie stellt man das programmtechnisch am besten an?

Wäre dankbar für eure Unterstützung!

Stefan

Warum ist 47.0 = 470,
wenn du von 0-100 % darstellen willst?

Gleitpunkt Operationen:

47 (Variabel X) x 10 (Konstante)

Und dann schau mal bei den anderen Gleitpunktfunktionen oder Wandlungen :cool:
Zieh dir die "Boxen" mal in deinen FC/FB und drücke mal F1.


Dann wirst schon drauf kommen.... :ROFLMAO:
 
Was hast Du denn vor? Willst Du den INT-Wert auf einem Panel darstellen, das mit ProTool oder WinCCflex projektiert ist? Bei letzterem kannst Du einfach in der Ein-/Ausgabeschaltfläche das Komma (die Dezimalstelle) verschieben. WinCCflex bzw. ProTool erweitern dann den Wert automatisch. Im Display steht dann 47,0, das wiederum entspricht dem INT-Wert 470.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was hast Du denn vor? Willst Du den INT-Wert auf einem Panel darstellen, das mit ProTool oder WinCCflex projektiert ist? Bei letzterem kannst Du einfach in der Ein-/Ausgabeschaltfläche das Komma (die Dezimalstelle) verschieben. WinCCflex bzw. ProTool erweitern dann den Wert automatisch. Im Display steht dann 47,0, das wiederum entspricht dem INT-Wert 470.


Nochmal bitte?

ich möchte gerne eine Kommazahl in einer INT-Zahl darstellen.

Als Real definiert im WinCCflex und 999,9 kann man mit 999 wandeln?
Das wäre mir neu....

Dann zeigt er einfach nur nichts nach dem Komma an.
 
Ok, also als Wert in WinCCflex:

1. Man nehme einen INT-Wert, z. B. im DB20.DBW10 (Wertebereich -32768 bis +32768 8) = bzw. für Dich: 0 - 1000 (= 0,0% - 100,0%)

2. In WinCCflex eine eine Ein-/Ausgabefläche projektieren und nach der Auswahl der Variable (DB20.DBW10) kannst Du unter "Allgemein" zu dem Feld den Wertebereich 99999 und die Kommastelle "1" eingeben.

Fertig

Nun kann man im Display 47,0% eingeben und im INT-Wert steht 470.
 
Zuletzt bearbeitet:
Danke für eure antworten. Ist ja recht einfach aber ich bin grad absolut nicht drauf gekommen.

Hintergrund der Umwandlung:

Habe eine Kopplung zu einer übergeordneten Steuerung per Modbus. Die Übertragung per Modbus kann hier nur max als 16-Bit Wert erfolgen.

Nochmals Danke an alle!:cool:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für eure antworten. Ist ja recht einfach aber ich bin grad absolut nicht drauf gekommen.

Hintergrund der Umwandlung:

Habe eine Kopplung zu einer übergeordneten Steuerung per Modbus. Die Übertragung per Modbus kann hier nur max als 16-Bit Wert erfolgen.

Nochmals Danke an alle!:cool:


Sowas habe ich mir gedacht :)

Hatte sowas ähnliches mal mit einer Profibus Geschichte...

Hab ich auch genauso gelöst...
 
Zurück
Oben