pl: float32 -- gibt es da eine Viertelregelung?

problematische Seite

Hmm,

wenn ich mir die Zahlen auf o.g. Seite so angucke, alles was .25 .5 .75 hat wird nicht verrundet oder anderweitig vermurkst. Da muß es wohl eine JS interne Regelung geben ist die irgendwo beschrieben?

MfG

  1. problematische Seite

    Hallo pl,

    wenn ich mir die Zahlen auf o.g. Seite so angucke, alles was .25 .5 .75 hat wird nicht verrundet oder anderweitig vermurkst. Da muß es wohl eine JS interne Regelung geben ist die irgendwo beschrieben?

    Lies dies.

    Bis demnächst
    Matthias

    --
    Rosen sind rot.
    1. problematische Seite

      hmm

      wenn ich mir die Zahlen auf o.g. Seite so angucke, alles was .25 .5 .75 hat wird nicht verrundet oder anderweitig vermurkst. Da muß es wohl eine JS interne Regelung geben ist die irgendwo beschrieben?

      Lies dies.

      Das ist mir zu kompliziert. Aber ein deutliches Anzeichen dafür daß wir mit unserem Problemchen nicht alleine sind 😉

      Danke!

      --
      Es reicht nicht, keine Ideen zu haben. Man muß auch unfähig sein sie umzusetzen.
  2. problematische Seite

    Hallo pl,

    nein, das liegt daran dass Float so funktioniert.

    IEEE Float stellt eine Dezimalzahl als Bruch dar, bei dem der Nenner eine Zweierpotenz ist. Der Zähler des Bruches ist die Mantisse, der Exponent des Nenners ist der Exponent der IEEE-Darstellung.

    Beispielsweise ist 3,5 = 7/2. Oder 1,375 = 11/8.

    Übung 1: Finde diesen Bruch für 0,775390625

    1. Die nächstkleinere Zweierpotenz ist 1/2. Die merken wir uns und ziehen 0,5 ab. Bleibt 0,275390625

    2. Nächste Möglichkeit ist 1/4. Merken, 0,25 abziehen: 0,025390625

    3. 1/8=0,125 - nö. 1/16 = 0,0625 - nö. 1/32 = 0,03125 - nö. 1/64 = 0,015625 - AHA! Merken, abziehen. Gibt 0,009765625

    4. 1/128 = 0,0078125. Merken, abziehen. Gibt 0,001953125

    5. 1/256 = 0,00390625 - nö. 1/512 = 0,001953125 - AHA. Jetzt geht der Bruch auf.

    Also: 1/2 + 1/4 + 1/64 + 1/128 + 1/512. Erweitern mit 512: (256+128+8+4+1)/512 = 110001101b/1000000000b oder $$110001101 \cdot 2^{-9} = 1{,}10001101 \cdot 2^{-1}$$

    Übungsaufgabe 2: Finde auf diese Weise einen Bruch, dessen dezimaler Wert 1,1 beträgt. Hör auf wenn Deine Nenner in den Bereich von 2^54 kommen. Vergleiche Ergebnis und den so angenäherten Wert. Vergleiche mit JavaScript. Identisch? Genau.

    Rolf

    --
    sumpsi - posui - clusi
    1. problematische Seite

      hi Rolf

      nein, das liegt daran dass Float so funktioniert.

      IEEE Float stellt eine Dezimalzahl als Bruch dar, bei dem der Nenner eine Zweierpotenz ist.

      Ahhh. Die Zwei mal wieder 😉

      Der Zähler des Bruches ist die Mantisse, der Exponent des Nenners ist der Exponent der IEEE-Darstellung.

      Beispielsweise ist 3,5 = 7/2. Oder 1,375 = 11/8.

      Boah, jetzt ist mir das klar, danke Dir!!!

      Übungsaufgabe: Finde einen Bruch dieser Art, dessen dezimaler Wert 1,1 beträgt.

      Kannse vergesse, ja, nee, is klar 😉

      MfG

      1. problematische Seite

        Hallo pl,

        habe währenddessen nochmal editiert und eine Vorübung eingebaut 😂

        Rolf

        --
        sumpsi - posui - clusi