Я нашел меня, мало отрывка в Интернете, о PMT вычисляют.
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); });
Когда страница является загрузкой, в поле ввода результата я вижу "NaN", и когда я tpye некоторое несоответствующее число тогда "-Бесконечность" сообщение появляюсь. Я ищу на "NaN" в файлах, и я нашел в jquery.js, но после того, как я изменяю, ничто не изменяется. И я не могу найти Бесконечность
Как я могу измениться, это обменивается сообщениями?
Править
Код вызова:-
function performCalc() {
CalculatePMTFromForm('LoanAmount', 'InterestRate', 'Months', 'Payment');
}
jQuery(document).ready(function() {
performCalc(); jQuery('.calc').keyup(performCalc);
});
Это работается для меня:
if(pmt>0 && pmt<Number.MAX_VALUE) {jQuery('#' + idResult).val(pmt.toFixed(2));}
NAN означает «не число».
Убедитесь, что вы проверяете каждое входное значение, является ли он числовым. Выбросьте сообщение об ошибке, если нет, или установите его на 0, в зависимости от того, необходим ли он для вашего расчета или нет.
Хорошая коллекция лучших способов проверить значение для того, является ли это числовое это так, вопрос: Проверка номеров в JavaScript - ISNUMIC ()
Попробуйте это: -
function CalculatePMTFromForm(idLoanAmount, idAnnualInterestRate, idMonths, idResult) {
var i = parseFloat($('#' + idAnnualInterestRate).val()) / 1200;
var n = parseFloat($('#' + idMonths).val());
var p = parseFloat($('#' + idLoanAmount).val());
var pmt = PMT(i, n, -p);
$('#' + idResult).val(pmt.toFixed(2));
}
.Val (), вероятно, возвращает тип строки, а не тип числа.