Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 6 von 6

Thema: Runden

  1. #1
    Registriert seit
    17.09.2011
    Beiträge
    8
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zusammen,

    Ich habe nochmals eine Frage.
    Ich habe Analog Werte, die ich nach der ersten bearbeitung Runden will. Ich habe eine Funktion gefunden, LREAL_TO_FMTSTR, mit der das Runden gut funktioniert. Nun mein Problem liegt aber daran, dass der gerundete Wert ein Stirng ist und ich diesen nicht weiterverarbeiten kann. Wenn ich den String wieder in ein Real umwandel will, war das Runden nutzlos.
    Kann mir jemand einen Tipp geben, wie ich einen Wert Runden kann und anschliessend mit dem gerundeten Wert Rechnen kann?

    Gruss

    Maurice
    Zitieren Zitieren Runden  

  2. #2
    Registriert seit
    24.02.2009
    Beiträge
    1.244
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Wie wäre es denn mit FLOOR, TRUNC oder LTRUNC ?

  3. #3
    Maurice ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.09.2011
    Beiträge
    8
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Bin gerade dabei es mit Trunc zu testen. Danke für den Tipp

  4. #4
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    757
    Danke
    27
    Erhielt 166 Danke für 144 Beiträge

    Standard

    TRUNC rundet nicht, sondern schneidet den Nachkommaanteil ab. Wenn der Wertebereich eines DINT ausreicht, geht das Runden am Einfachsten mit REAL_TO_DINT.

  5. #5
    Registriert seit
    19.10.2009
    Beiträge
    194
    Danke
    8
    Erhielt 50 Danke für 44 Beiträge

    Standard

    Das Abschneiden des Nachkommateils ist eines der sehr vielen möglichen Rundungsverfahren, TRUNC rundet in Richtung 0.
    Das Runden zur nächstgelegenen Rundungszahl erledigt z.B. die Konvertierungsfunktion.
    Ein Beispiel, wie man die Konvertierungsfunktion nutzen kann, um REAL Variable auf eine Nachkommastelle zur nächstgelegenen Rundungszahl zu runden:
    Code:
    r2:= DINT_TO_REAL(REAL_TO_DINT(r1 * 10.0))/10.0;
    Gruß
    witkatz

  6. #6
    Registriert seit
    11.07.2004
    Beiträge
    1.597
    Danke
    10
    Erhielt 213 Danke für 183 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    TRUNC rundet nicht, sondern schneidet den Nachkommaanteil ab.
    dann addierst Du vorher entsprechend dazu. Wenn Du beispielsweise auf ganze Zahlen runden willst addierst Du 0.5 dazu, bei Runden auf eine Kommastelle nimmst Du erst mal 10, addierst 0,5 drauf, TRUNC, dann wieder durch 10 dividiert.

Ähnliche Themen

  1. auf bestimmte Nachkommastellen runden
    Von Thomas E. im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 27.08.2010, 15:07
  2. Kabelkanal für runden Tank
    Von Pau1e im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 12.02.2009, 21:22
  3. Runden von Intergerzahlen (Hex)
    Von Aboden im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 09.02.2009, 07:50
  4. Runden
    Von maxi im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 09.01.2007, 19:24
  5. SCL Runden
    Von Anonymous im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 03.12.2005, 10:24

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •