Heinz-Peter Klein: Methode "toFixed" des Objektes Number

Ich bin Lehrer an einer Berufsbildenden Schule und programmiere derzeit mit einer Klasse in JavaScript.

Um bei der Ausgabe von Dezimalzahlen die Nachkommastellen abzuschneiden, wollten wir die Methode "toFixed" des Objektes Number verwenden. Aber schon beim Aufruf der in "SelfHTML" verwendeteten Anzeigebeispiele kommt die Fehlermeldung "Das Objekt unterstützt diese Eigenschaft oder Methode nicht".

Wir suchen Hilfe, um das geschilderte Problem zu beheben.

Für alle Bemühungen schon vorab vielen Dank.

  1. Hallo,

    Wir suchen Hilfe, um das geschilderte Problem zu beheben.

    Die Methode toFixed() ist nicht jedem Browser bekannt. Vielleicht hilft dieses Vorgehen:

    function Runden(x,s)
    {
      if(x.toFixed)
      {
        return x.toFixed(s);
      }
      else
      {
        return parseInt(x*Math.pow(10,s)+0.5)/Math.pow(10,s);
      }
    }

    Beispielaufruf: <body onload="alert(Runden(1.23456,2))">

    Im else-Zweig kann man noch abfragen, ob die Anzahl der erhaltenen Nachkommastellen tatsaechlich dem Wert von s entspricht und ggf. fuehrende Nullen ergaenzen.

    MfG, Thomas

  2. hallo Herr Klein,

    "[Number].toFixed()" wird erst seit JavaScript 1.5
       unterstuetzt und ist damit unter NN4.x und MSIE4.x
       noch nicht anwendtbar - man kann die js-Api jedoch
       seinen beduerfnissen anpassen, indem man z.b. eigene
       objektmethoden definiert - einige erweiterungen fuer
       Number- und String-objekte finden Sie unter:

    http://www.pseliger.de/jsExtendedApi/_reference_jsApi_trimConvertFormat.html;

    die oben erwaehnte JS1.5-klippe laesst sich mit der
       in der referenz beschriebenen methode "fixedDigits()"
       umschiffen - herunterladen lassen sich die zugehoerigen
       js-files unter der beispielseite:

    http://www.pseliger.de/jsExtendedApi/_examples_jsApi_trimConvertFormat.html;

    viel spass und by(t)e by(t)e - peterS. - pseliger@gmx.net

    1. Hallo Peter,

      Wir haben den Internet Explorer 5.0 und dennoch funktioniert die Methode "toFixed()" nicht.

      Die von Ihnen beschriebene Alternative "fixedDigits()" funktioniert allerdings auch nicht.

      Vielleicht wissen Sie ja noch einen Rat.

      Für Ihre Bemühungen schon vorab vielen Dank.

      1. hallo Herr Klein,

        Wir haben den Internet Explorer 5.0 und dennoch funktioniert die Methode "toFixed()" nicht.

        bitte entschuldigen Sie meine voreilige behauptung, dass
           die methode "[Number].toFixed()" im MSIE ab der version 5
           zur verfuegung steht - tut sie nicht - aber ab verion 5.5
           koennen Sie darauf bauen; (und ich dachte immer js1.5 ist
           ab MSIE 5.0 dabei)

        Die von Ihnen beschriebene Alternative "fixedDigits()" funktioniert allerdings auch nicht;

        doch, das ding funktioniert - der beweis steht ja online;
           allerdings muessen Sie bei lokaler verwendung aller auf der
           seite vorgestellten methoden erst noch die dazugehoerigen
           js-files herunterladen und in Ihre seite einbinden;
           schauen Sie sich die referenz und die beispielseite doch
           noch einmal genau an;

        by(t)e by(t)e - peterS. - pseliger@gmx.net