Javascript und große Zahlen
Friedel
- javascript
1 Rolf B0 Friedel
0 Tabellenkalk
Hallo
Ich möchte in einer Seite, in der es um ein mathematisches Rätsel geht, 8 Zahlen, die der User in Input-Felder eingegeben hat, auf Plausibilität prüfen. Die Werte sind plausibel, wenn die Produkte der ersten 4 Werte und der nächsten 4 Werte jeweils genau 17! ist. Aber wie kann ich das Prüfen? Die 8 Werte sind alles integer und liegen zwischen 24 und 57120. Sie sind also nicht problematisch. Aber das Produkt daraus macht mit Probleme. Wie kann man die Werte ohne Rundungsfehler multiplizieren?
Hallo Friedel,
ich könnte dich auf die BigInt Klassen verweisen, die laufen aber nicht in jedem Browser.
Und 17! ist 355687428096000 < 9007199254740991 (Number.MAX_SAFE_INTEGER), d.h. du hast noch eine Stelle Reserve. Wenn das Produkt der eingegebenen Zahlen größer wird, kommst Du vielleicht in Rundungen des IEEE754 Formats, aber das kann Dir egal sein, der Wert ist dann ja schon von der Größenordnung her unplausibel.
Also: Glück gehabt 😀
Rolf
Danke. Manchmal istes schön, wenn man sich verrechnet hat 😉
Hallo,
Aber wie kann ich das Prüfen? […] Aber das Produkt daraus macht mit Probleme.
Über den Vergleich der Teiler!?
Gruß
Kalk
Hallo Tabellenkalk,
coole Idee. Ist zwar etwas mühsam zu programmieren und vermutlich auch nicht extrem fix, aber solange Bigint eine Chrome-Domäne bleibt...
Rolf
@@Rolf B
aber solange Bigint eine Chrome-Domäne bleibt...
Bleibt es nicht. Auch Firefox kann BigInt schon; im 67er noch hinterm Flag versteckt, im 68er für alle freigeschaltet.
LLAP 🖖