Announcement

Collapse
No announcement yet.

Trunc Fehler

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Trunc Fehler

    Hallo,

    nachfolgende Funktion wird fehlerhaft ausgeführt! Mit x1 := 2.51, bzw 2.55 liefert x den Wert 250 bzw. 254 zurück.

    var x1,x2 : double;
    x : int64;
    begin
    try
    x1 := 2.51; // bzw. x1 := 2.55;
    x2 := (x1 * 100);
    x := Trunc(x2);
    MessageBox(0,Pchar('x: ' + IntToStr(x)),Pchar('Ausgabe'),0);

    { x2 := (x1 * 1000);
    x := Trunc(x2 / 10); ==> funktioniert!}

    except
    MessageBox(0,PCHAR('Fehler'),Pchar('Fehler'),0);
    end;
    end;

    Diese Konstellation wird in meinem Programm leider seeehr oft verwendet!
    Kann mir jemand eine einfache Abhilfe nennen???

  • #2
    <p>Hallo Uwe,<br>
    <br>
    für Deinen Fall, bietet sich <b>Round</b> an. Trunc gibt immer den gegen 0 gerundeten Wert zurück.<br>
    <br>
    Gruß Thomas</p&gt

    Comment

    Working...
    X