Für eine Webanwendung möchte ich in der Lage sein, Zahlen von bis zu 64 Bit zu verarbeiten. Während des Tests habe ich festgestellt, dass JavaScript (oder der Browser als Ganzes) so viel wie 17 Ziffern zu behandeln scheint. Eine 64-Bit-Nummer hat maximal 20 Ziffern, aber nachdem das Javascript die Nummer behandelt hat, werden die drei letzten Ziffern gerundet und auf 0 gesetzt. Irgendwelche Ideen, woher das kommt? Noch wichtiger, jede Idee, wie man es umgehen kann?Wie kann ich in Firefox/IE7 mit Zahlen umgehen, die größer als 17 Ziffern sind?
Antwort
In Javascript, alle Zahlen sind IEEE double precision Gleitkommazahlen erreicht haben, was bedeutet, dass Sie nur etwa 16 Stellen genau haben; der Rest der 64 Bits ist für den Exponenten reserviert. Wie Fabien bemerkt, müssen Sie einige Tricks anwenden, um mehr Präzision zu erreichen, wenn Sie alle 64 Bits benötigen.
Ich glaube, Sie brauchen, um sie als Zeichenfolgen zu behandeln, wenn Sie Javascript Limit (see here)
Sie könnten versuchen, sie in zwei oder mehr Zahlen aufzuteilen (in einer Klasse vielleicht), aber Sie benötigen möglicherweise einige arithmetische Hilfsfunktionen, um mit ihnen zu arbeiten.
Prost
Wie andere beachten, implementiert JS verdoppelt, so dass Sie woanders suchen, um größere Zahlen zu behandeln. BigInt ist eine Bibliothek für arbiträre Präzisionsmathematik für Ganzzahlen.
- 1. Csvwrite mit Zahlen größer als 7 Ziffern
- 2. Wie soll ich HTML-Codierung eines Umrisses mit römischen Ziffern, Zahlen, Alphabuchstaben umgehen?
- 3. Wie gehen Sie mit Zahlen größer als UInt64 (C#)
- 4. Nur Zahlen in Textfeld nicht größer als Kontostand
- 5. Umgang mit Zahlen größer als Long in VBA
- 6. Grep Zeilen für Zahlen größer als die angegebene Nummer
- 7. Wie soll ich mit Ziffern aus unterschiedlichen UNICODE-Ziffern in derselben Zeichenfolge umgehen?
- 8. Wie kann ich alle Werte eines mehrdimensionalen Arrays ändern, die in Python größer als Null sind?
- 9. Wie wähle und speichere ich Spalten, die größer als eine Zahl in Pandas sind?
- 10. Wie kann ich in JavaScript mit Währungen umgehen?
- 11. Wie kann ich Dateien, die größer als 5 GB sind, auf Amazon S3 hochladen?
- 12. Arbeiten mit Zahlen größer als den maximalen Dezimalwert
- 13. PHP - Zahlen, Ziffern
- 14. Kann ich ein UIPageControl/UIScrollview erstellen, wenn die Seiten größer als die Bildschirmgröße sind?
- 15. Ziffern großer Zahlen in Powershell
- 16. Was ist die größte Zahl, mit der die Decimal-Klasse umgehen kann?
- 17. Loading ganze Zahlen größer als 32-Bit in MIPS-Assembly
- 18. Wie kann ich mit russischem Text in Perl umgehen?
- 19. Wie kann man Dezimalzahlen zu Zahlen hinzufügen, die als Text gespeichert sind?
- 20. Wie kann ich die Formatzeichenfolge umgehen?
- 21. Wie kann ich mit großen Matrizen umgehen?
- 22. Wie kann ich eine mathematische Berechnung für reelle Zahlen durchführen, die als Strings gespeichert sind?
- 23. Tabellenzellen, die größer sind als sie sein sollen
- 24. Wie kann ich mit klassischem ASP umgehen?
- 25. Screenshot des Formulars, dessen Abmessungen größer als die Bildschirmabmessungen sind
- 26. Wie ich mit meinem Socket umgehen kann
- 27. Wie viele Zahlen gibt es bis N, die Ziffern 2,3,5 haben und durch 2,3,5 teilbar sind?
- 28. Welchen Variablentyp kann ich verwenden, um große Zahlen (30+ Ziffern) in Java zu speichern?
- 29. Warum „größer als“ Vergleich von Zahlen unerwartetes Ergebnis geben
- 30. Mindest Subarray, die größer als ein Schlüssel