Foros del Web » Programando para Internet » Javascript »

Problemas con decimales

Estas en el tema de Problemas con decimales en el foro de Javascript en Foros del Web. Despues de haber indagado mucho en todos los ejemplos que hay, no he conseguido encontrar lo que busco, o no se como aplicarlo a lo ...
  #1 (permalink)  
Antiguo 05/01/2010, 03:29
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 2
Problemas con decimales

Despues de haber indagado mucho en todos los ejemplos que hay, no he conseguido encontrar lo que busco, o no se como aplicarlo a lo que necesito, no tengo ni idea de javascript.
El problema es que tengo un formulario con varios campos uno de ellos es el precio y otro un descuento, lo que quiero es que aparezca el total en otro campo. Hasta ahi funciona perfecto el problema es que no se como poner para que solamente me aparezcan dos decimales en el total.
Os dejo el codigo, gracias....

<script>
function Sumar(Campo1, Campo2, Campo3)
{
var objCamp1=document.getElementById(Campo1);
var objCamp2=document.getElementById(Campo2);
var objCamp3=document.getElementById(Campo3);

if ((objCamp1.value!='') && (objCamp2.value!=''))
{
objCamp4.value=parseFloat(objCamp1.value)-(parseFloat(objCamp1.value) * parseFloat(objCamp2.value)/100);
}
}
</script>

Se que se utiliza la funcion toFixed(2), pero no se donde la he de aplicar.
  #2 (permalink)  
Antiguo 05/01/2010, 03:40
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problemas con decimales

la funcion toFixed se aplica a los valores tipo numero. puedes encerrar toda la computacion dentro de un parentesis y seguido invocas la funcion. o si no quieres liarte mucho en la lectura del codigo, guarda la computacion en una variable y luego invocas la funcion desde esa variable.
Código:
(calcular valores).toFixed(2);
// o
variable = calcular valores;
variable.toFixed(2);
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 05/01/2010, 03:50
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problemas con decimales

Este lo he probado y no funciona.. quedaria asi no?

Código Javascript:
Ver original
  1. <script>
  2.    function Sumar(Campo1, Campo2, Campo3)
  3.    {
  4.     var objCamp1=document.getElementById(Campo1);
  5.     var objCamp2=document.getElementById(Campo2);
  6.     var objCamp3=document.getElementById(Campo3);
  7.  
  8.     if ((objCamp1.value!='') && (objCamp2.value!=''))
  9.     {
  10.         (objCamp3.value=parseFloat(objCamp1.value)-(parseFloat(objCamp1.value) * parseFloat(objCamp2.value)/100)).toFixed(2);
  11.     }
  12.    }
  13. </script>

y el otro modo que me has puesto me pierdo, me podrias ayudar un poco mas.
Gracias
  #4 (permalink)  
Antiguo 05/01/2010, 04:02
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problemas con decimales

fijate que mencione solo la calculacion, no tenias que poner dentro donde vas asignar el computo.
Código:
objCamp3.value= (parseFloat(objCamp1.value)-(parseFloat(objCamp1.value) * parseFloat(objCamp2.value)/100)).toFixed(2);
la otra forma, simplemente es crear una variable donde almacenar el calculo. luego invocas la funcion.
Código:
var calculo = parseFloat(objCamp1.value)-(parseFloat(objCamp1.value) * parseFloat(objCamp2.value)/100);
objCamp.value = calculo.toFixed(2);
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 05/01/2010, 04:22
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problemas con decimales

Muchas gracias zerokilled funciona perfectamente, habia colocado mal los parentesis... tambien lo he probado de la otra manera, y funciona tambien..

Un saludo

Etiquetas: Ninguno
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:14.