Wann sollte ich BigInt64Array über Float64Array für Zahlen verwenden, die kleiner als Number.MAX_SAFE_INTEGER sind?JavaScript

Javascript-Forum
Guest
 Wann sollte ich BigInt64Array über Float64Array für Zahlen verwenden, die kleiner als Number.MAX_SAFE_INTEGER sind?

Post by Guest »

In JavaScript gibt es zwei typisierte Array-Konstruktoren, die ziemlich große Zahlen speichern können:

Code: Select all

const longs = new BigInt64Array()
const doubles = new Float64Array()
Beide stellen Arrays aus 64-Bit-Ganzzahlen mit Vorzeichen bzw. Gleitkommazahlen dar.
Gibt es einen Grund, BigInt64Array zu verwenden? wenn ich keine Zahlen speichere, die größer als Number.MAX_SAFE_INTEGER sind?
Der einzige Vorteil, der mir einfällt, ist die Verwendung von BigInt64Array (auch wenn Ihre Zahlen kleiner sind als Number.MAX_SAFE_INTEGER) ist, wenn Sie beim Speichern Ihrer Zahlen einen Ganzzahltyp erzwingen möchten, da der Konstruktor einen Fehler auslöst, wenn eines der Elemente eine Gleitkommazahl ist:

Code: Select all

const arr = new BigInt64Array([900719925.4534]);
// Uncaught TypeError: Cannot convert 900719925.4534 to a BigInt
Die Nachteile bestehen jedoch darin, dass Sie für jede bekannte Ganzzahl, die Sie hinzufügen möchten, daran denken müssen, n wie folgt daran anzuhängen:

Code: Select all

const arr = new BigInt64Array([523235n, 1093n, 3238n]);
Wenn außerdem nur die Laufzeit die Ganzzahlen kennt, müssen Sie die Funktion BigInt(value) verwenden, um sie in den richtigen Typ zu konvertieren:

Code: Select all

const arr = new BigInt64Array([BigInt(a), BigInt(b), BigInt(c)]);
Der Vorteil von Float64Array besteht darin, dass es von Anfang an mit primitiven JavaScript-Zahlen funktioniert (es ist kein Zahlenliteralsuffix oder eine Konverterfunktion erforderlich).
Ist meine Argumentation bezüglich der Nützlichkeit von BigInt64Array richtig?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post