Byte 1+x -> float



  • Hallo,

    ich lese aus einer Siemenssteuerung (SPS) mehrere Werte aus. Diese sind auf der SPS als Realzahlen (float) dargestellt.

    Wenn ich nun die 4 Byte auslese, wie kann ich die bytes zusammenfügen und als float darstellen.
    Also nicht 1000 Decimal = 1000.0 float oä.
    Sondern 1162040934 Decimal ergibt 3125,4 float (Real)

    Ich suche fertige Funktionen, die Aufteilung der Bits nach Exponent / Mantisse usw. ist mir bekannt.

    Danke
    worst_case



  • Vielleicht reicht das schon:

    long l = 1162040934;
    float f = ((float) &l);



  • Abend,

    he das klappt ja super.
    Nur noch eins..... die Rundung funkt nicht ganz.
    SOLL: 3125.4
    IST 3125.39999

    kann ich das noch iregndwie aufrunden... z.B. runde auf 2 Nachkommastelle ?

    worst_case


Anmelden zum Antworten