Foros del Web » Programando para Internet » Javascript »

Redondear

Estas en el tema de Redondear en el foro de Javascript en Foros del Web. Hola amigos. Alguna función, para redondear de la siguiente manera. Ejemplo. Valor es de $1007 y que pueda quedar en $1010 por temas de dinero ...
  #1 (permalink)  
Antiguo 02/05/2013, 11:38
Avatar de bymorr  
Fecha de Ingreso: septiembre-2012
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 9
Redondear

Hola amigos.

Alguna función, para redondear de la siguiente manera.

Ejemplo.

Valor es de $1007 y que pueda quedar en $1010 por temas de dinero y los pesos guachos que quedan.



Gracias.
  #2 (permalink)  
Antiguo 02/05/2013, 17:37
Avatar de bymorr  
Fecha de Ingreso: septiembre-2012
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 9
Respuesta: Redondear

alguna idea amigos.
  #3 (permalink)  
Antiguo 02/05/2013, 22:06
 
Fecha de Ingreso: abril-2013
Mensajes: 23
Antigüedad: 11 años
Puntos: 1
Respuesta: Redondear

No creo que haya una función para lo que pedís, pero podés hacer por programación, algo como esto:

Código HTML:
Ver original
  1. <input type="text" id="valor"  />
  2. <input type="button" onclick="javascript:redondear()" value="Mostrar" />
  3. <input type="text" id="valornuevo"  />
  4.  
  5. <script type="text/javascript">
  6. function redondear(){
  7.     var numero="";
  8.     numero = document.getElementById("valor").value;
  9.     var long = numero.length;
  10.     switch(parseInt(numero.charAt(long-1))){
  11.         case 6:
  12.             var nuevonumero = parseInt(numero)+4;
  13.             window.alert(nuevonumero);
  14.             document.getElementById("valornuevo").value = nuevonumero;
  15.             break;
  16.        
  17.         case 7:
  18.             var nuevonumero = parseInt(numero)+3;
  19.             window.alert(nuevonumero);
  20.             document.getElementById("valornuevo").value = nuevonumero;
  21.             break;
  22.            
  23.         case 8:
  24.             var nuevonumero = parseInt(numero)+2;
  25.             window.alert(nuevonumero);
  26.             document.getElementById("valornuevo").value = nuevonumero;
  27.             break; 
  28.         Y todo lo demas!
  29.     }
  30. }
  31. </body>
  32.  
  33. </html>

Saludos.
  #4 (permalink)  
Antiguo 03/05/2013, 10:13
Avatar de bymorr  
Fecha de Ingreso: septiembre-2012
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 9
Respuesta: Redondear

Cita:
Iniciado por todosolucionesweb Ver Mensaje
No creo que haya una función para lo que pedís, pero podés hacer por programación, algo como esto:

Código HTML:
Ver original
  1. <input type="text" id="valor"  />
  2. <input type="button" onclick="javascript:redondear()" value="Mostrar" />
  3. <input type="text" id="valornuevo"  />
  4.  
  5. <script type="text/javascript">
  6. function redondear(){
  7.     var numero="";
  8.     numero = document.getElementById("valor").value;
  9.     var long = numero.length;
  10.     switch(parseInt(numero.charAt(long-1))){
  11.         case 6:
  12.             var nuevonumero = parseInt(numero)+4;
  13.             window.alert(nuevonumero);
  14.             document.getElementById("valornuevo").value = nuevonumero;
  15.             break;
  16.        
  17.         case 7:
  18.             var nuevonumero = parseInt(numero)+3;
  19.             window.alert(nuevonumero);
  20.             document.getElementById("valornuevo").value = nuevonumero;
  21.             break;
  22.            
  23.         case 8:
  24.             var nuevonumero = parseInt(numero)+2;
  25.             window.alert(nuevonumero);
  26.             document.getElementById("valornuevo").value = nuevonumero;
  27.             break; 
  28.         Y todo lo demas!
  29.     }
  30. }
  31. </body>
  32.  
  33. </html>

Saludos.
Gracias lo probare y te contare como me fue. Gracias nuevamente
  #5 (permalink)  
Antiguo 04/05/2013, 11:49
Avatar de daPhyre
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: [email protected] (Redirects to 127.0.0.1)
Mensajes: 2.404
Antigüedad: 16 años, 1 mes
Puntos: 142
Respuesta: Redondear

Si debes "redondear" las unidades, yo creo que lo mejor sería:

1) Dividir el número entre 10 [1007/10 -> 100.7]
2) Redondear [Math.round(100.7) -> 101]
3) Multiplicar de nuevo por 10 [101*10 -> 1010]

Esto en una función, es la forma más práctica que veo para resolver tu problema. Suerte :)
__________________
<signs>daPhyre</signs>
Jugaa.me


Adios al dolor de cabeza de IE...
  #6 (permalink)  
Antiguo 04/05/2013, 12:54
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 17 años, 7 meses
Puntos: 14
Respuesta: Redondear

También podría crearse una función denominada redondear en la que tenga un argumento opcional con el número de cifras significativas a usar para el redondeo, y dividiendo la cifra en una matriz:

Por ejemplo la llamada a la función sería:

var miCifra = 1007;
redondear(miCifra,1); //Esto podría dar como resultado 1000 o 1010 según se redondea al alza o a la baja.
redondear(miCifra,2); //Esto provocaría 1000 o 1100 de la misma forma, ya que al evaluar las dos últimas cifras el rango es mayor.

Y así sucesivamente, entonces mediante el argumento opcional puede controlar el tipo de redondeo, y si es al alza o a la baja (ésto bien podría hacerse con un tercer argumento para ver hacia dónde quiere redondear).

Saludos cordiales.
Francisco J.

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 19:28.