¿Cómo puedo redondear a números enteros en JavaScript?


92

Tengo el siguiente código para calcular un cierto porcentaje:

var x = 6.5;
var total;

total = x/15*100;

// Result  43.3333333333

Lo que quiero tener como resultado es el número exacto 43y si el total es 43.5, debería redondearse a44

¿Hay alguna forma de hacer esto en JavaScript?

Respuestas:


167

Utilice la Math.round()función para redondear el resultado al número entero más cercano.


también me ayudó! :) Gracias por el amigo del enlace MDN :)
Afzaal Ahmad Zeeshan

1
El crédito por el enlace es para @Jeremy. Gracias por insertarlo, hizo que comenzar en SO fuera mucho más divertido que la quinta respuesta que escribí obtuviera tantos votos como esta, lo que seguramente se debió al enlace. :-)
hmakholm dejó a Monica el

2
¿OP no quería redondear UP? Si es así, tal vez Math.ceil () sería más apropiado
martellalex

1
@martellalex: A partir de la pregunta, el OP quería 43.333 para redondear a 43 pero 43.5 para redondear a 44, lo que coincide exactamente con el comportamiento de ECMAScript Math.round () de redondeo al más cercano y ejecutar sem enteros exactos hacia infinito positivo.
hmakholm dejó a Monica el

65
//method 1
Math.ceil(); // rounds up
Math.floor(); // rounds down
Math.round(); // does method 2 in 1 call

//method 2
var number = 1.5; //float
var a = parseInt(number); // to int
number -= a; // get numbers on right of decimal

if(number < 0.5) // if less than round down
    round_down();
else // round up if more than
    round_up();

uno o una combinación resolverán tu pregunta


10
total = Math.round(total);

Deberías hacerlo.


8

Use Math.roundpara redondear el número al entero más cercano:

total = Math.round(x/15*100);

4

una solución muy sucinta para redondear un flotador x:

x = 0|x+0.5

o si solo quieres poner en el suelo tu flotador

x = 0|x

esto es bit a bit o con int 0, que elimina todos los valores después del decimal

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.