Javascript - Come quadrato di un numero?
-
22-08-2019 - |
Domanda
Utilizzando la funzione JavaScript
function squareIt(number) {
return number * number;
}
Quando dato il numero 4294967296 restituisce 18446744073709552000 viene restituita la funzione
Tutti conoscono la vera risposta è 18446744073709551616: -)
Credo che questo è quello a con arrotondamento sulla mia macchina a 32 bit. Tuttavia, sarebbe questo script dare la risposta giusta su una macchina a 64 bit? Qualcuno ha provato questo?
Soluzione
ChrisV- vedere questo post . Anche più facile per le persone a valutare la tua domanda digitando il seguente JavaScript direttamente nella casella di testo URL del browser:
javascript:4294967296*4294967296
Altri suggerimenti
JavaScript utilizza aritmetica in virgola mobile a 64 bit internamente per i calcoli numerici -. I risultati visualizzati sono un riflesso di questo, e sarà happene indipendentemente dall'architettura sottostante
Che dire di questo
function squareIt(number){
return Math.pow(number,2)
}
Ecco un altro esempio sulla base di BigInteger.js .
alert(bigInt(4294967296).square());
<script src="https://cdnjs.cloudflare.com/ajax/libs/big-integer/1.6.40/BigInteger.min.js"></script>