Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Redondear decimales

Estas en el tema de Redondear decimales en el foro de Javascript en Foros del Web. Hola Amigos !!! ya se que hay infinidades de lugares tanto en google como en el foro pero realmente no encuentro como hacer esto paso ...
  #1 (permalink)  
Antiguo 19/02/2013, 10:28
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Redondear decimales

Hola Amigos !!!
ya se que hay infinidades de lugares tanto en google como en el foro
pero realmente no encuentro como hacer esto
paso a explicar con este codigo
Código Javascript:
Ver original
  1. var n=parseFloat(1.54359)
  2. alert(n.toFixed(2))// resultado 1.54
bien, lo que yo necesito es volver a redondear 1.54 a 1.55 o 1.50
la idea es que el ultimo decimal siempre sea 5 o 0
Saludos y muchas gracias por cualquier ayuda que me puedan brindar
  #2 (permalink)  
Antiguo 19/02/2013, 10:59
Avatar de k2bboy7  
Fecha de Ingreso: febrero-2013
Ubicación: Zaragoza
Mensajes: 2
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Redondear decimales

Prueba con lo siguiente:

function redondeo2decimales(numero)
{
var original = parseFloat(numero);
var result = Math.round(original * 100) / 100;
return result;
}
</script>


Para llamar a este script:

alert(redondeo2decimales(10.1587));

O si lo prefieres asignado a una variable:

var numero = redondeo2decimales(10.1587);
alert(numero);


Saludos
  #3 (permalink)  
Antiguo 19/02/2013, 11:13
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Redondear decimales

Hola k2bboy7
gracias por contestar
de esa forma mantiene el numero original sin redondear por ejemplo
Código Javascript:
Ver original
  1. alert(redondeo2decimales(10.16))
como resultado me da 10.16
y lo que necesito es que el resultado sea 10.20
en cambio si el numero es 10.14
que lo redondee a 10.15
necesito que el ultimo decimal siempre sea 0 o 5
Saludos y muchas gracias
  #4 (permalink)  
Antiguo 19/02/2013, 12:15
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Redondear decimales

creo que te convendría tratar el numero como una cadena
Ejemplo

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>redondeo a n0/n5</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. </head>
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. var numero=parseFloat(1.627359);
  10. var redondeo = numero.toFixed(2);
  11. var cadena = redondeo.toString();
  12. var ultimo = cadena.charAt(cadena.length-1);
  13. var pos = cadena.lastIndexOf(ultimo);
  14. var cambio =(ultimo < 5)?'0':'5';
  15. var reemplazo = cadena.substring(0,pos) + cambio + cadena.substring(pos+1)
  16. alert(reemplazo);
  17. //]]>
  18. </body>
  19. </html>

El resultado final es un string, si querés realizar opraciones con ese valor tendrás que pasarlo a número de vuelta
Salu2
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 19/02/2013, 14:26
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Redondear decimales

Muchas gracias emprear
me sirvio perfectamente
Saludos!!!

Etiquetas: redondear
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:42.