AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

trunc(2)=1?

Ein Thema von num_ber_3 · begonnen am 11. Nov 2003 · letzter Beitrag vom 11. Nov 2003
Antwort Antwort
Seite 2 von 2     12   
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: trunc(2)=1?

  Alt 11. Nov 2003, 16:37
Zitat von Tpercon:
Zitat von Chewie:
Es gibt Rechner, die das richtig ausrechnen

Oder sollte es if a =99.99 heißen
Schau mal:
  a := a - b; kommt zweimal vor.

Mist, hatte ich gesehen, aber ich dachte, das würde aus Versehen zweimal dastehen

Wird Zeit, dass ich mal was esse, wenn ich sowas schon nicht mehr seh...
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#12

Re: trunc(2)=1?

  Alt 11. Nov 2003, 18:53
Aus der OH:
Zitat:
Typ: Double
Bereich: 5.0 x 10^-324 .. 1.7 x 10^308
Signifikante Stellen: 15-16
Größe in Byte: 8
Zitat:
FloatToStr konvertiert die mit Value angegebene Gleitkommazahl in die entsprechende String-Darstellung. Bei der Operation wird das allgemeine Zahlenformat mit 15 signifikanten Stellen verwendet.
Hab's mir mal durchgerechnet, so wie es vermutlich der Co-Prozessor rechnet:
Delphi-Quellcode:
so ist es im Rechner: und so ungerundet:
********************************************* ****************************************

z := 9 * (1 / 24); z := 9 * (1 / 24);
z := 9 * 0,0416666666666667{15}; z := 9 * 0,04166666...;
z := 0,375000000000003{15}; z := 0,375;

anfang := 7 * (1 / 24); anfang := 7 * (1 / 24);
anfang := 7 * 0,0416666666666667{15}; anfang := 7 * 0,04166666...;
anfang := 0,291666666666669{16}; anfang := 0,29166666...;

h := (z - anfang) / (1 / 24); h := (z - anfang) / (1 / 24);
h := (0,375..{15} - 0,2916..{15}) / (1 / 24); h := (0,375 - 0,29166666...) / (1 / 24);
h := 0,0833333333333333{15} / 0,0416..{15}; h := 0,0833333... / 0,04166666...;
h := 1,999999999999998{16}; h := 2;

F2S := floattostr(h);
F2S := floattostr(1,999999999999998{16});
       {1,999999999999998}
F2S := '2,00000000000000'{15};
F2S := '2'{15};

T := trunc(h);
T := trunc(1,999999999999998{16});
T := '1';
Wenn ab nur ein kleines bissl anders gerundet wird, kommt gleich mal etwas anderes raus:
Delphi-Quellcode:
z := 9 * (1 / 24);
z := 9 * 0,0416666666666667{15};
z := 0,375000000000003{15};

anfang := 7 * (1 / 24);
anfang := 7 * 0,0416666666666667{15};
anfang := 0,2916666666666669{15};

h := (z - anfang) / (1 / 24);
h := (0,375..{15} - 0,291..{15}) / (1 / 24);
h := 0,0833333333333361{15} / 0,0416..{15};
h := 2,000000000000065{16};

F2S := floattostr(h);
F2S := floattostr(2,000000000000065{16});
F2S := '2,00000000000007'{15};

T := trunc(h);
T := trunc(2,000000000000065{16});
T := '2';
Delphi-Quellcode:
z := 9 * (1 / 24);
        {0,04166666...}
z := 9 * 0,0416666666666667{15};
    {0,37500000000000003}
z := 0,375000000000000{15};
z := 0,375{15};

anfang := 7 * (1 / 24);
anfang := 7 * 0,0416666666666667{15};
         {0,2916666666666669}
anfang := 0,291666666666667{15};

h := (z - anfang) / (1 / 24);
h := (0,375{15} - 0,2916..{16}) / (1 / 24);
    {0,083333333333333}
h := 0,0833333333333330{15} / 0,0416..{15};
    {1,9999999999999904000000000000077...}
h := 1,999999999999990{16};

F2S := floattostr(h);
F2S := floattostr(1,999999999999990{16});
F2S := '1,99999999999999'{15};

T := trunc(h);
T := trunc(1,9999999999999904{16});
T := '1';
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz