Problema con decimales en javascript
Tengo esta función javascript en una página jsp:
function calcularEfectTot() {
var numTit = document.insercionCompraForm.numTitCompr.value;
numTit = parseInt(numTit,10);
if (isNaN(numTit))
numTit = 0;
var precUnit = document.insercionCompraForm.precUnitCompr.value;
precUnit = parseFloat(precUnit);
if (isNaN(precUnit))
precUnit = 0;
var efectTot = numTit * precUnit;
document.insercionCompraForm.efectTotCompr.value = efectTot;
}
El problema está en que el valor de 'efectTot' es, por ejemplo, 12 * 5.3 = 63.5999..., o también, 12 * 5.4 = 64.8000.... ¿Por qué esos resultados no son 63.6 y 64.8? ¿Cómo puedo conseguirlos? ¿Cómo puedo truncar o redondear en javascript? (Para el primer caso no me valdría esa solución!)
Y si yo quisiera guardar en la variable 'precUnit' un valor double, ¿cómo lo hago?, puesto que parseDouble() no existe, ¿no? Cómo se transforma un string en un double en javascript? Y otra cosa más. Cómo válido del lado del cliente un campo double si en el paquete org. Apache.commons.validator.javascript de la librería commons-¿Validator.jar no aparece validateDouble.js? Si que está validateInteger.js y validateFloat.js, pero... ¿y si trabajo con double?
function calcularEfectTot() {
var numTit = document.insercionCompraForm.numTitCompr.value;
numTit = parseInt(numTit,10);
if (isNaN(numTit))
numTit = 0;
var precUnit = document.insercionCompraForm.precUnitCompr.value;
precUnit = parseFloat(precUnit);
if (isNaN(precUnit))
precUnit = 0;
var efectTot = numTit * precUnit;
document.insercionCompraForm.efectTotCompr.value = efectTot;
}
El problema está en que el valor de 'efectTot' es, por ejemplo, 12 * 5.3 = 63.5999..., o también, 12 * 5.4 = 64.8000.... ¿Por qué esos resultados no son 63.6 y 64.8? ¿Cómo puedo conseguirlos? ¿Cómo puedo truncar o redondear en javascript? (Para el primer caso no me valdría esa solución!)
Y si yo quisiera guardar en la variable 'precUnit' un valor double, ¿cómo lo hago?, puesto que parseDouble() no existe, ¿no? Cómo se transforma un string en un double en javascript? Y otra cosa más. Cómo válido del lado del cliente un campo double si en el paquete org. Apache.commons.validator.javascript de la librería commons-¿Validator.jar no aparece validateDouble.js? Si que está validateInteger.js y validateFloat.js, pero... ¿y si trabajo con double?
1 Respuesta
Respuesta
1