BigDecimal in JavaScript
Dieser Artikel behandelt die Verwendung von BigDecimal
in JavaScript.
Verwendung von BigDecimal
in JavaScript
Bevor Sie sich mit der Funktionsweise von BigDecimal
in JavaScript beschäftigen, müssen Sie sich mit BigDecimal
auskennen. Ein BigDecimal
besteht aus einem unskalierten ganzzahligen Wert mit beliebiger Genauigkeit und einer 32-Bit-Ganzzahlskala.
Wenn die Skala null oder positiv ist, ist dies die Anzahl der Ziffern rechts vom Dezimalkomma. Wenn die Ganzzahl negativ ist, wird der unskalierte Wert mit zehn hoch der Negation der Skala multipliziert.
BigDecimal
ermittelt Gleichheits- und Hash-Codes anhand der dezimalen Darstellung binärer Gleitkomma-Ganzzahlen. Dies führt zu anderen Ergebnissen als die Konvertierung zwischen Long- und Double-Zahlen, die die genaue Form verwendet.
Beachten Sie, dass Sie das npm
-Paket von BigDecimal
installieren müssen, bevor Sie den Code ausführen.
Speichern Sie den folgenden Code als Datei mit der Erweiterung js
.
let bDecimal = require('bigdecimal');
let num = new bDecimal.BigInteger('123456abcdefghijklmn7890', 25);
console.log('num is ' + num);
let newD = new bDecimal.BigDecimal(num);
let k = new bDecimal.BigDecimal('4567890.12345612345678901234567890123');
console.log('newD * k = ' + newD.multiply(k));
let two = new bDecimal.BigDecimal('2');
console.log('Average = ' + newD.add(k).divide(two));
Sie können verschiedene Methoden wie multiply()
, add()
, divide()
sehen. Die Methode add()
fügt einen BigDecimal
-Objektwert zu einem anderen hinzu, wobei newD
ein BigDecimal
-Objekt ist, newD
wird zu k
hinzugefügt.
Während die multiply()
-Methode einen BigDecimal
-Objektwert mit einem anderen multipliziert, dividiert die divide()
-Methode den einen BigDecimal
-Wert durch einen anderen.
Bei der Umwandlung eines Double oder Float in ein BigDecimal
ist Vorsicht geboten, da die binäre Bruchdarstellung von Double und Float nicht einfach in eine Dezimaldarstellung übergeht.
Ausgabe:
BigDecimal
ist ideal für die Arithmetik von Finanzdaten oder alles, was über den JavaScript-Integer-Typ (IEEE-754 Float) hinausgeht. Decimal war in den neuen ECMAScript-Standards nicht enthalten.
Shiv is a self-driven and passionate Machine learning Learner who is innovative in application design, development, testing, and deployment and provides program requirements into sustainable advanced technical solutions through JavaScript, Python, and other programs for continuous improvement of AI technologies.
LinkedIn