Encontré un pequeño snipet en internet, sobre el cálculo de PMT.Función Excel PMT en JS
function PMT(i, n, p) {
return i * p * Math.pow((1 + i), n)/(1 - Math.pow((1 + i), n));
}
function CalculatePMTFromForm(idLoanAmount, idAnnualInterestRate, idMonths, idResult) {
var i = jQuery('#' + idAnnualInterestRate).val()/1200;
var n = jQuery('#' + idMonths).val();
var p = jQuery('#' + idLoanAmount).val();
var pmt = PMT(i, n, -p);
jQuery('#' + idResult).val(pmt.toFixed(2));
}
function performCalc() {
CalculatePMTFromForm('LoanAmount', 'InterestRate', 'Months', 'Payment');
}
jQuery(document).ready(function() { performCalc(); jQuery('.calc').keyup(performCalc); });
Cuando la página se carga, en el cuadro de entrada consecuencia veo "NaN", y cuando me tpye un número irrelevante luego "-Infinity" msg aparece. Busco "NaN" en archivos y lo encontré en jquery.js, pero después de modificarlo, nada cambia. Y no puedo encontrar Infinity
¿Cómo puedo cambiar este mensaje?
Editar
Código de llamada: -
function performCalc() {
CalculatePMTFromForm('LoanAmount', 'InterestRate', 'Months', 'Payment');
}
jQuery(document).ready(function() {
performCalc(); jQuery('.calc').keyup(performCalc);
});
Esto se trabajó para mí:
if(pmt>0 && pmt<Number.MAX_VALUE) {jQuery('#' + idResult).val(pmt.toFixed(2));}
Muestranos la llamada a CalculatePMTFromForm? – AnthonyWJones
function performCalc() { CalculatePMTFromForm ('LoanAmount', 'InterestRate', 'Months', 'Payment'); } jQuery (documento) .ready (function() {performCalc(); jQuery ('. Calc'). Keyup (performCalc);}); – Holian
Y está seguro de que a) cada elemento de ENTRADA en cuestión tiene la ID correcta (y esa ID no está duplicada) y b) cada ENTRADA tiene un valor inicial proporcionado por el servidor. – AnthonyWJones