Pergunta

Eu procurei através do google (talvez eu não olhar duro o suficiente), mas eu não poderia encontrar como transformar Math.sqrt em um int.

Eu quero usar Math.sqrt para um para loop e eu acho que eu preciso dele como um int, mas eu não consigo descobrir como converter o resultado para um int. Então, como posso fazer isso?

Eu tentei algo semelhante ao Java:

(int) Math.sqrt(num);

Mas não deu certo.

Agradecemos antecipadamente:)

Foi útil?

Solução

Use Math.round, Math.ceil, ou Math.floor dependendo das necessidades de sua específicas arredondamento.

"Para arredondamento números inteiros para uma de Math.round, Math.ceil e Math.floor são preferíveis, e para um resultado desejado que pode ser expresso como um número inteiro de 32 bits com sinal a operação bit a bit descrito abaixo Podem terno. "

- http://www.jibbering.com/faq/faq_notes/type_convert .html # tcNumber

Outras dicas

Alguém sugeriu parseInt. Que vai de uma string para um int, mas é fácil transformar uma bóia em uma string.

parseInt(Math.sqrt(num)+"")

Lembre-se que não importa o que você faz, JavaScript está sempre usando carros alegóricos. Não há nenhum tipo inteiro.

Math.floor vai fazê-lo. Duvido que você precisa mesmo de ir para um inteiro, no entanto.

Math.floor(Math.sqrt(num));

Usando parseInt(Math.sqrt(num)+"") é mais lento do que usar Math.round(Math.sqrt(num)). Eu acho que é porque no primeiro exemplo você está criando corda, análise de valor inteiro de num e arredondando-lo. no segundo exemplo você tomar apenas int e volta.

Eu sei que esta é uma questão de idade, mas figura i para qualquer um encontrar este mais tarde ....

Eu não vou reiterar o que as outras respostas dizer, mas um truque divertido pouco que você pode fazer é:

Math.sqrt(2); //1.41......
~~Math.sqrt(2); //1

a dupla negativa bit a bit cai nada depois do ponto decimal. Eu tenho dito que é um pouco mais rápido, mas eu não estou totalmente convencido.

EDIT:. Como uma nota esta será rodada para 0

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top