Foros del Web » Programando para Internet » Javascript »

Problema con redondeo

Estas en el tema de Problema con redondeo en el foro de Javascript en Foros del Web. Buenas a todos, quiero pasar el valor de una combo de euros a ptas. para ello hago lo siguiente: onkeyup="ptas.value=parseFloat(this.value)*166.386 " elproblema es que no ...
  #1 (permalink)  
Antiguo 11/04/2005, 06:01
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Problema con redondeo

Buenas a todos, quiero pasar el valor de una combo de euros a ptas. para ello hago lo siguiente:

onkeyup="ptas.value=parseFloat(this.value)*166.386 "


elproblema es que no me redondea.. hay alguna funcion que lo haga?

salu2
  #2 (permalink)  
Antiguo 11/04/2005, 06:08
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola ferranWEB

Supongo que quieres redondear a 2 decimales:

pesetas=257.1854
pesetas=Math.round(pesetas*100)/100;

Si en lugar de 2 decimales necesitas 3, multiplicas por 1000 y divides por 1000.

Saludos,
  #3 (permalink)  
Antiguo 11/04/2005, 08:13
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
hola javierb, gracias por responder,pero no entiendo lo que me dices. quedaria algo asi?

onkeyup="ptas.value=Math.round(this.value*100)/100"??

es que no entiendo la funcion.

salu2 y gracias por las molestias
  #4 (permalink)  
Antiguo 11/04/2005, 10:13
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

Pues no puede explicarte mucho. En alguna parte leí que para redondear a un número determinado de decimales se multiplicaba, en este caso por 100 (10 elevado a 2) y se dividía también por 100. Lo único que he hecho es "traducirlo" a JavaScript.

Siento no poder explicarlo mejor. Saludos,
  #5 (permalink)  
Antiguo 11/04/2005, 12:52
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola.
Primero se pasa de euros a ptas, como ya tenías.
Luego el redondeo:
como la función disponible en JS es el redondeo a enteros, debes pasar de ptas a céntimos (*100), redondear (Math.round) y luego volver a pasar a ptas (/100). De ese modo se redondea con dos decimales, que es lo lógico para la moneda.
Por tanto, tienes que combinar los dos códigos anteriores:

onkeyup="ptas.value=Math.round(this.value*166.386* 100)/100"

o, lo que es lo mismo,

onkeyup="ptas.value=Math.round(this.value*16638.6)/100"

que te dará ptas con 2 decimales
__________________
Angel :cool:
  #6 (permalink)  
Antiguo 12/04/2005, 04:55
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
muchas gracias angsanchez, justo lo que buscabaa
salu2
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 17:13.