JavaScript - Como quadrar um número?
-
22-08-2019 - |
Pergunta
Usando a função JavaScript
function squareIt(number) {
return number * number;
}
Quando recebeu o número 4294967296, a função retorna 18446744073709552000 é retornada
Todo mundo sabe que a resposta real é 18446744073709551616 :-)
Eu acho que isso é para arredondar na minha máquina de 32 bits. No entanto, esse script daria a resposta certa em uma máquina de 64 bits? alguem ja tentou isso?
Solução
Chrisv- Veja este post. Também é mais fácil para as pessoas avaliar sua pergunta digitando o seguinte JavaScript diretamente na caixa de texto URL do navegador:
javascript:4294967296*4294967296
Outras dicas
O JavaScript usa a aritmética flutuante de 64 bits internamente para cálculos numéricos - os resultados que você vê são um reflexo disso, e o Happene, independentemente da arquitetura subjacente.
Que tal isso
function squareIt(number){
return Math.pow(number,2)
}
Aqui está mais um exemplo baseado em Biginteger.js.
alert(bigInt(4294967296).square());
<script src="https://cdnjs.cloudflare.com/ajax/libs/big-integer/1.6.40/BigInteger.min.js"></script>