sirve redondear que para hacia arriba javascript math type-conversion int casting

redondear - math.sqrt javascript



Javascript: ¿Reparte Math.sqrt a int? (5)

He buscado a través de google (tal vez no parecía lo suficientemente duro) pero no pude encontrar cómo convertir Math.sqrt en un int.

Quiero usar Math.sqrt para un ciclo for y supongo que lo necesito como un int pero no puedo encontrar la manera de convertir el resultado en un int. Entonces, ¿cómo lo hago?

Intenté algo similar a Java:

(int) Math.sqrt(num);

Pero no funcionó.

Gracias por adelantado :)


Use Math.round , Math.ceil o Math.floor dependiendo de sus necesidades específicas de redondeo.

"Para redondear números a números enteros, uno de Math.round, Math.ceil y Math.floor es preferible, y para un resultado deseado que se puede expresar como un entero de 32 bits con signo, la operación de bit descrita a continuación también podría ser adecuada".

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


Usar parseInt(Math.sqrt(num)+"") es más lento que usar Math.round(Math.sqrt(num)) . Creo que es porque en el primer ejemplo estás creando una cadena, analizando el valor entero de num y redondeándolo. en el segundo ejemplo, simplemente toma int y lo redondea.


Sé que esta es una vieja pregunta, pero creo que cualquiera que encuentre esto más tarde ...

No voy a reiterar lo que dicen las otras respuestas, pero un pequeño truco divertido que puedes hacer es:

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

el doble bit negativo arroja algo después del punto decimal. Me han dicho que es un poco más rápido, pero no estoy del todo convencido.

EDITAR: como nota, este redondeará hacia 0.


Alguien sugirió un parseInt. Eso va de una cadena a una int, pero es fácil convertir una flotación en una cadena.

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

Recuerda que no importa lo que hagas, JavaScript siempre usa flotadores. No hay un tipo entero.


Math.floor lo hará. Sin embargo, incluso se necesita ir a un número entero.

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