Verán estoy creando un script mediante el cual en un formulario voy mostrando valores calculados en ciertos campos, el problema es que ciertas operaciones devuelven el valor NaN, os paso una copia de mi codigo javascript
:
Código:
$(document).ready(function() {
$('#totalbeneficios').attr('value','0'+'€');
$('#porcentajebeneficios').attr('value','0'+'%');
});
function calculos() {
var num = $('.registro').length; //cantidad de lineas que tenemos
var importe = '';
var incremento = '';
var operador = '';
var unidades = '';
var totalunitario = '';
var totallinea = '';
var totalsinincremento = '';
var totalconincremento = '';
var totalbeneficios = '';
var porcentajebeneficios = '';
for (var i = 1; i <= num; i++) {
importe = document.getElementById('importe' + i).value;
incremento = document.getElementById('incremento' + i).value;
operador = document.getElementById('operador' + i).value;
unidades = document.getElementById('unidades' + i).value;
if (operador == '+') {
totalunitario = (parseFloat(importe) + parseFloat(incremento));
totallinea = (parseFloat(totalunitario) * parseFloat(unidades));
} else {
totalunitario = (parseFloat(importe) * ((parseFloat(incremento)+100)/100));
totallinea = (parseFloat(totalunitario) * parseFloat(unidades));
}
/////////////////////////////////////////////////////////////////////
totalsinincremento = parseFloat(totalsinincremento) + parseFloat(importe);
totalconincremento = parseFloat(totalconincremento) + parseFloat(totallinea);
/////////////////////////////////////////////////////////////////////////
$('#total' + i).attr('value',totallinea+'€');
$('#totalbruto').attr('value',totalsinincremento+'€');
$('#totalsiniva').attr('value',totalconincremento+'€');
$('#totalconiva').attr('value',(totalconincremento * 1.21)+'€');
}
totalbeneficios = (parseFloat(totalconincremento) - parseFloat(totalsinincremento));
porcentajebeneficios = ((parseFloat(totalconincremento)/parseFloat(totalsinincremento))*100);
$('#porcentajebeneficios').attr('value',porcentajebeneficios+'%');
$('#totalbeneficios').attr('value',totalbeneficios+'€');
}
Los errores vienen a partir de cuando calcuo los totales, el total de linea se muestra bien por sospecho que el error viene de aqui:
Código:
/////////////////////////////////////////////////////////////////////
totalsinincremento = parseFloat(totalsinincremento) + parseFloat(importe);
totalconincremento = parseFloat(totalconincremento) + parseFloat(totallinea);
/////////////////////////////////////////////////////////////////////////
La unica diferencia que veo con el resto de operaciones es que en esta uso la misma variable a la que llamamos para sumarle la otra variable tal y como hacía en PHP no se si tendrá algo que ver pero lo señalo por si acaso, gracias de antemano por la ayuda, saludos Pablo.