2009-05-19 8 views
4

Utilisation de la fonction javascriptJavascript - Comment cadrer un nombre?

function squareIt(number) { 
    return number * number; 
} 

Quand étant donné le nombre 4294967296 La fonction retourne 18446744073709552000 est retourné

Tout le monde connaît la vraie réponse est 18446744073709551616 :-)

Je suppose que cela est à l'arrondissement avec sur ma machine 32 bits. Cependant, ce script donnerait-il la bonne réponse sur une machine 64 bits? Quelqu'un at-il essayé cela?

Répondre

3

ChrisV- see this post. Aussi, il est plus facile pour les gens d'évaluer votre question en tapant le code JavaScript suivant directement dans la zone de texte URL du navigateur:

javascript:4294967296*4294967296 
1

Javascript utilise l'arithmétique à virgule flottante de 64 bits en interne pour les calculs numériques - les résultats que vous voyez sont le reflet de ceci, et seront heureux quelle que soit l'architecture sous-jacente.

1

Qu'en est-ce

function squareIt(number){ 
return Math.pow(number,2) 
} 
+0

um, avez-vous pris la peine de le tester? Vous sauriez la réponse. – epascarello

+0

oui, et il renvoie 18446744073709552000 – Konstantinos