Announcement

Collapse
No announcement yet.

Gleitkommazahlen - Nachkommastellen

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

  • Gleitkommazahlen - Nachkommastellen

    Hi

    var
    x : Double;

    begin

    x := 0.0000020000011;

    wie kann ich sicher feststellen wie viele Nachkommastellen hat diese Zahl?

    z.B.:

    function meindezimal(x : Double) : Integer;

    wo ich als Rückgabewert die Zahl der Nachkommastellen erhalten kann

    also bei:

    var
    x : Double;
    i : Integer ;

    begin

    x := 0.0000020000011;

    i := meindezimal(x);

    Ergebnis i = 13 bekomme

    Mit freundlichen Grüßen

    Klaus Bürkle

  • #2
    Hallo,
    ich wollte dir mal einen guten Rat geben, aber Gott sei Dank habe ich das mal vorher probiert und interessantes gefunden.
    Der Lösungsansatz war, mit Frac() den Nachkommaanteil zu ermitteln, als String umwandeln und mit Length die Länge ermitteln.
    Probiert mir der Zahl z := 12.01235;
    Frac(z) brachte mir 0123599999999996. Das fand ich ungewöhnlich.
    Die folgende Lösung haut aber hin:
    z := 12.01235;
    Laenge := Length(FloatToStr(z))-(pos(DecimalSeparator,FloatToStr(z)));
    label1.caption := Inttostr(Laenge);
    wobei Laenge ein Integer und s ein String ist.

    mfg Klaus-Pete

    Comment

    Working...
    X