Was ist die Standardlösung in JavaScript für den Umgang mit großen Zahlen (BigNum)? [closed]

Lesezeit: 3 Minuten

Gibt es eine bignum Bibliothek für JavaScript oder eingebaut, die ich gerne einbinden kann

<script type="text/javascript" src="https://stackoverflow.com/questions/3072307/the_bignum_library.js"></script>

?

Ich denke, meine Benutzer würden es vorziehen, Zahlen auf einer Webseite einzugeben und 7 Sekunden auf ein Ergebnis zu warten, anstatt eine ausführbare Datei herunterzuladen und sich durch eine Reihe von „Diese ausführbare Datei könnte möglicherweise Ihrem Computer schaden“-Warnbildschirmen zu klicken, um sie zu installieren.

Ich habe darüber nachgedacht, meine eigene davon abzustützen http://github.com/silentmatt/javascript-biginteger oder http://www.mainebrook.com/john/fun/euler.html. Oder würden Sie empfehlen, von JavaScript aus eine Java-Bignum-Bibliothek wie afloat aufzurufen?

  • Ich verstehe deine Frage nicht ganz, zuerst fragst du nach einer bignum-Bibliothek, dann stellst du selbst zwei zur Verfügung? 🙂

    – Skurmedel

    18. Juni 2010 um 18:52 Uhr

  • Als ich “exakt-rational-arithmetisch” sagte, meinte ich “kann Zahlen wie 1/7 genau darstellen”. Die beiden Bibliotheken, die ich erwähnt habe, können das, soweit ich das beurteilen kann, nicht – sie können nur ganze Zahlen verarbeiten.

    – David Cary

    21. Juni 2010 um 6:58 Uhr

  • Okay, mein Fehler für schlampiges Lesen 🙂

    – Skurmedel

    21. Juni 2010 um 11:35 Uhr

  • Da ist ein BigRational.js Bibliothek für exakte rationale Arithmetik.

    – Peter Olsen

    12. November 2014 um 23:41 Uhr

  • Dies ist eine ziemlich nützliche Frage, also habe ich versucht, sie zu retten. Obskure Bibliotheksbestellungen sind unangemessen; Standardbibliothekslösungen sollten auf SO gedeihen.

    – Djechlin

    10. April 2015 um 22:56 Uhr

Aktualisierung (2019-08-19): BigInt ist jetzt Teil von Firefox und Chrome; Sie brauchen keine Bibliothek mehr:

const bigInt1 = 1111111111111111111111111111111n;
const bigInt2 = BigInt("1111111111111111111111111111111")
console.log((bigInt1 + bigInt2)+"")

Ursprüngliche Antwort:

Wenn Sie Dezimalzahlen mit beliebiger Genauigkeit benötigen, verwenden Sie Javascript-bignumda es richtig und schnell ist.

  • Diese Antwort wird auf Meta diskutiert.

    – Halber

    25. Juli 2018 um 22:09 Uhr

  • Keine erhellende Diskussion. Ich bin ziemlich frustriert, dass es “illegal” erscheint, eine Antwort auf diese Frage zu geben, die mir mehr als legitim erscheint.

    – max

    14. Juni 2019 um 3:47 Uhr

  • Das gilt also für alle Firefox-Versionen oder ab einer bestimmten?

    – DRP

    17. Januar 2020 um 17:05 Uhr

Große Nummer.

  • Das wird für meine Anwendung gut funktionieren. (Obwohl diese Bibliothek technisch gesehen nicht genau 1/7 darstellen kann, kommt sie meiner Anwendung nahe genug).

    – David Cary

    21. Juni 2010 um 8:03 Uhr

  • Die interne Darstellung dieser Bibliothek besteht darin, die Zahl als Dezimalzeichenfolge zu speichern. Dies ist sehr langsam für größere Zahlen und Operationen.

    – jnnnn

    14. März 2012 um 1:08 Uhr

  • Babiker, vergib mir, dass ich dein großes grünes Häkchen für „beantwortet“ weggenommen und es jnnnnn gegeben habe. Die Antwort von jnnnnn repräsentiert tatsächlich genau 1/7.

    – David Cary

    5. Juni 2012 um 16:35 Uhr

  • Ernsthaft, es gibt einen Fehler. Versuchen alert(new BigNumber(100).divide(1));

    – Schrittmacher

    28. Oktober 2013 um 15:29 Uhr


  • Ich will nicht unhöflich sein, aber diese fehlerhafte Bibliothek wird auf subtile Weise mehr Menschen schaden, als sie hilft …

    – Schrittmacher

    31. Oktober 2013 um 16:56 Uhr

931050cookie-checkWas ist die Standardlösung in JavaScript für den Umgang mit großen Zahlen (BigNum)? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy