JS: Mit Variablen rechnen und runden

Da Mathematik kein Hexenwerk ist, sind auch Berechnungen in JavaScript kein Problem. In dem untenstehendem Beispiel berechnen wir den Klassiker der Mathematik: a + b = c. Im ersten Teil per Addition. Dann wird a und b mit neuen Werten belegt und dividiert. Hier werden Sie sehen, dass die Division ein unschönes Ergebnis bringt, da das Ergebnis nicht gerundet wird. Dies erreichen wir mit „Math.Round“. Allerdings rundet diese Funktion immer kaufmännisch auf die nächste Ganzzahl.

<script type="text/javascript">
function Berechne()
{
    //Lese diverse Werte ein und speicher sie in Variablen
   var a = 1;
   var b = 2;

   //Berechne die Addition uns speicher sie in der Variable c
   var c = a + b;   
   alert("Die Addition von a und b ergibt: " + c);

   //Belege a und b mit neuen Werten und berechne c neu
   a = 7;
   b = 3;
   c = a/b;
   alert("Die Division von a und b ergibt: " + c);

   //Runde c kaufmännisch auf die nächste Ganzzahl
   c = Math.round(a/b);
   alert("Gerundet ergibt die Division: " + c);
}
</script>

Und wie rundet man mit JavaScript auf zwei (oder mehr) Nachkommastellen?
JavaScript kann dies „von Haus aus“ leider nicht. Wir müssen uns also selbst behelfen. Doch dies ist nicht sehr schwer. Dazu muss das Komma erst um die Anzahl der Nachkommastellen nach rechts verschoben werden. Dann kann gerundet werden und dann erfolgt die Verschiebung des Kommas wieder nach links. Kompliziert? Nein. Umständlich? ja, leider. Doch wenn man sich einmal das folgende Beispiel verinnerlicht hat, ist die Rundung in Zukunft kein Problem mehr. Das folgende Beispiel rundet auf vier Stellen nach dem Komma („10000“). Sie möchten zwei Dezimalstellen nach dem Komma? Sicher kennen Sie die Lösung …

<script type="text/javascript">
function Berechne()
{
   //Belege a und b mit neuen Werten und berechne c neu
   var a = 7;
   var b = 3;
   var c = a/b;

   alert("Gerundet auf vier Nachkommastellen: " + Math.round(c * 10000) / 10000);
}
</script>
GD Star Rating
loading...

Schreibe einen Kommentar

Time limit is exhausted. Please reload the CAPTCHA.