JavaScript - Comment au carré un numéro?
-
22-08-2019 - |
Question
Utilisation de la fonction JavaScript
function squareIt(number) {
return number * number;
}
Lorsqu'on donne le numéro 4294967296, la fonction renvoie 18446744073709552000 est retournée
Tout le monde sait que la vraie réponse est 18446744073709551616 :-)
Je suppose que c'est à l'arrondi sur ma machine 32 bits. Cependant, ce script donnerait-il la bonne réponse sur une machine 64 bits? Quelqu'un a-t-il essayé cela?
La solution
Chrisv- voir ce post. Il est également plus facile pour les gens d'évaluer votre question en tapant le JavaScript suivant directement dans la zone de texte URL du navigateur:
javascript:4294967296*4294967296
Autres conseils
JavaScript utilise une arithmétique à point flottante à 64 bits en interne pour les calculs numériques - les résultats que vous voyez sont le reflet de cela, et se réalisera quelle que soit l'architecture sous-jacente.
Et ça
function squareIt(number){
return Math.pow(number,2)
}
Voici un autre exemple basé sur Biginteger.js.
alert(bigInt(4294967296).square());
<script src="https://cdnjs.cloudflare.com/ajax/libs/big-integer/1.6.40/BigInteger.min.js"></script>