Consulta restas

Hola soy nuevo en esto de javascript
Lo que voy a preguntar me parece una tontería pero me hace cosas rara al intentar restar dos campos.
Este es un código de prueba desarrollo sobre pl/sql:
REATE OR REPLACE procedure PRUEBAedu
IS
begin
HTP.P('<script>');
HTP.P('function resta()');
HTP.P('{');
HTP.P(' var valor1 = parseFloat(document.all.txt1.value);');
HTP.P(' var valor2 = parseFloat(document.all.txt2.value);');
HTP.P(' var resta = valor1 - valor2;');
HTP.P(' document.all.resta.value = resta;');
HTP.P(' alert(typeof(valor1)+"/"+typeof(valor2)+"/"+typeof(resta));');
HTP.P(' alert(valor1+"/"+valor2+"/"+resta);');
HTP.P(' document.all.cajaEdu.value = (valor1 + valor2);');
HTP.P(' alert("Para edu->"+(document.all.txt1.value - document.all.txt2.value));');
HTP.P('}');
HTP.P('</script>');
HTP.P('1-><input name="txt1" type="text" value=""><br>');
HTP.P('2-><input name="txt2" type="text" value=""><br>');
HTP.P('resta-><input name="resta" type="text" value=""><br>');
HTP.P('suma-><input name="cajaEdu" type="text" value=""><br>');
HTP.P('<a onclick="resta();">resta</a>');
END;
/
Si pruebas con los valores 1.3 -1.2
La resta me da 0.10000000000000009
Y la suma bien.
Haber si me puedes explicar porque pasa esto.
Muchas gracias de antemano.
Un saludo

1 Respuesta

Respuesta
1
La verdad es que es raro, si... como no sea por algún problema a la hora de poner la precisión de las variables (?)...
La verdad es que no se que decirte... salvo que, tal vez, puedas probar a hacer un Number a la hora de restar:
HTP.P(' alert("Para edu->"+(Number(document.all.txt1.value) - Number(document.all.txt2.value)));');
Gracias por contestar, eso también lo haba probado y o va. He estado leyendo sobre esto y me ha parecido entender que es un problema interno de javascript por lo que siempre es necesario redondear el resultado a un numero fijo de decimales.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas