JavaScript - Wie kann man eine Nummer quadrieren?
-
22-08-2019 - |
Frage
Verwenden der JavaScript -Funktion
function squareIt(number) {
return number * number;
}
Bei der Nummer 4294967296 wird die Funktion 18446744073709552000 zurückgegeben
Jeder weiß, dass die wahre Antwort 18446744073709551616 :-) ist
Ich denke, dies ist zu rund um meine 32-Bit-Maschine zu runden. Würde dieses Skript jedoch die richtige Antwort auf eine 64 -Bit -Maschine geben? Hat jemand das versucht?
Lösung
Chrisv- Siehe diesen Beitrag. Außerdem leichter für Personen, Ihre Frage zu bewerten, indem Sie das folgende JavaScript direkt in das Textbox der Browser -URL eingeben:
javascript:4294967296*4294967296
Andere Tipps
JavaScript verwendet 64 Bit -Floating Point Arithmetic Innen für numerische Berechnungen - die Ergebnisse, die Sie sehen, spiegeln dies wider und wird unabhängig von der zugrunde liegenden Architektur passiert.
Was ist damit?
function squareIt(number){
return Math.pow(number,2)
}
Hier ist ein weiteres Beispiel basierend auf BigInteger.js.
alert(bigInt(4294967296).square());
<script src="https://cdnjs.cloudflare.com/ajax/libs/big-integer/1.6.40/BigInteger.min.js"></script>