मुझे इस बंधक कैलकुलेटर की मरम्मत करनी है, लेकिन मुझे वास्तव में समझ में नहीं आता कि गणना क्यों काम नहीं कर रही है। मुझे इसे सुलझाने में मदद चाहिए। या कम से कम कोई मुझे यह समझाने के लिए कि इस समारोह में क्या गलत है। (कैलकुलेटर में आवेदकों की संयुक्त वार्षिक आय के लिए एक इनपुट और जमा के लिए एक अन्य इनपुट है। कैलकुलेटर को अधिकतम संपत्ति मूल्य और अनुमानित मासिक लागत के लिए परिणाम दिखाना चाहिए)।

function PMT (rate_per_period, number_of_payments, present_value, future_value, type ) {
        var q = Math.pow(1 + rate_per_period, number_of_payments);
        return (rate_per_period * (future_value + (q * present_value))) / ((-1 + q) * (1 + rate_per_period * (type)));
}

jQuery(document).ready(function ($) {

        $(".input").keyup(function () {
            var annualIncomeInput = 0;
            var depositInput = 0;
            var annualIncome = 0;
            var deposit = 0;
            var mortgage = 0;
            var propertyValue = 0;
            var monthlyPayments = 0;
            annualIncomeInput = $('#annualIncome').val();
            depositInput = $('#deposit').val();
            annualIncome = parseFloat(annualIncomeInput.replace(/,/g, ''));
            deposit = parseFloat(depositInput.replace(/,/g, ''));
            if (annualIncomeInput && depositInput) {
                if ((deposit / 0.1 - deposit) >= (annualIncome * 4.5)) {
                    mortgage = annualIncome * 4.5;
                    propertyValue = mortgage + deposit;
                } else {
                    propertyValue = deposit / 0.1;
                    mortgage = propertyValue - deposit;
                }
                monthlyPayments = PMT(0.0307/12, 30*12, mortgage, 0, 0).toFixed(2);
            }
            
            propertyValue = parseFloat(propertyValue).toLocaleString();
            monthlyPayments = parseFloat(monthlyPayments).toLocaleString();
            $('#totalHowMuchCanIBorrow').text('£' + propertyValue);
            $('#estimatedCosts').text('£' + monthlyPayments);
            
        })
    })

अगर आपको और विवरण चाहिए तो कृपया मुझे बताएं! शुक्रिया!

0
Elisabeta Aionese 27 नवम्बर 2021, 11:48
यह अब क्या करता है जिसकी आप अपेक्षा नहीं करते हैं? यह मददगार होगा यदि आप जादुई संख्याओं को स्थिरांक से बदल दें ताकि यह स्पष्ट किया जा सके कि संख्याएँ क्या हैं। 4.5, या 0.0307 क्या है?
 – 
Tom W
27 नवम्बर 2021, 11:53
डब्ल्यू मुझे लगता है कि इसकी गणना करने के लिए अंगूठे की संख्या के कुछ नियम हैं। लेकिन यह भी नहीं मिलता कि वास्तव में क्या गलत होना चाहिए। एक उदाहरण जोड़ सकते हैं कि परिणाम क्या होना चाहिए या सूत्र लिखने का प्रयास करें कि यह क्या होना चाहिए और हम कार्यान्वयन में त्रुटि खोजने में आपकी सहायता कर सकते हैं
 – 
Mucksh
27 नवम्बर 2021, 12:11
लेकिन क्या यह बिल्कुल भी काम नहीं करता है या सिर्फ सही नहीं है सही परिणाम नहीं है?
 – 
Mucksh
27 नवम्बर 2021, 12:21
@TomW, PMT = PMT फ़ंक्शन को वित्तीय एक्सेल फ़ंक्शंस के अंतर्गत वर्गीकृत किया गया है। यह फ़ंक्शन एक विशिष्ट समय अवधि में एक निश्चित ब्याज दर के साथ एक ऋण या एक निवेश को निपटाने के लिए आवश्यक कुल भुगतान (मूल और ब्याज) की गणना करने में मदद करता है। 0.0307/12 = दर। मैंने इंटरनेट पर पाया ( PMT(rate, nper, pv, [fv], [type]) )। 4.5 का मतलब है - उनकी सैलरी का 4.5 गुना।
 – 
Elisabeta Aionese
27 नवम्बर 2021, 12:21
1
कोड में jQuery HTML के बाद है। मैं कुछ बदलाव करने वाला हूँ और अपने उत्तर के साथ वापस आता हूँ। शुक्रिया!
 – 
Elisabeta Aionese
27 नवम्बर 2021, 12:35

1 उत्तर

सबसे बढ़िया उत्तर

यह काम करता है शायद आप इसे अपनी तुलना करके त्रुटि पाते हैं :) कुछ भी नहीं बदला बस इसमें फिटिंग एचटीएमएल जोड़ा

function PMT(rate_per_period, number_of_payments, present_value, future_value, type) {
  var q = Math.pow(1 + rate_per_period, number_of_payments);
  return (rate_per_period * (future_value + (q * present_value))) / ((-1 + q) * (1 + rate_per_period * (type)));
}

jQuery(document).ready(function($) {
  //not sure how your html looks but maybe here you want $("input") and not $(".input") that selects all elements with the css class input that's maybe missing in the html
  $(".input").keyup(function() {
    var annualIncomeInput = 0;
    var depositInput = 0;
    var annualIncome = 0;
    var deposit = 0;
    var mortgage = 0;
    var propertyValue = 0;
    var monthlyPayments = 0;
    annualIncomeInput = $('#annualIncome').val();
    depositInput = $('#deposit').val();
    annualIncome = parseFloat(annualIncomeInput.replace(/,/g, ''));
    deposit = parseFloat(depositInput.replace(/,/g, ''));
    if (annualIncomeInput && depositInput) {
      if ((deposit / 0.1 - deposit) >= (annualIncome * 4.5)) {
        mortgage = annualIncome * 4.5;
        propertyValue = mortgage + deposit;
      } else {
        propertyValue = deposit / 0.1;
        mortgage = propertyValue - deposit;
      }
      monthlyPayments = PMT(0.0307 / 12, 30 * 12, mortgage, 0, 0).toFixed(2);
    }

    propertyValue = parseFloat(propertyValue).toLocaleString();
    monthlyPayments = parseFloat(monthlyPayments).toLocaleString();
    $('#totalHowMuchCanIBorrow').text('£' + propertyValue);
    $('#estimatedCosts').text('£' + monthlyPayments);

  })
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input class="input" id='annualIncome' type="number">
<input class="input" id='deposit' type="number">
<div id="totalHowMuchCanIBorrow"></div>
<div id="estimatedCosts"></div>
0
Gerard 27 नवम्बर 2021, 13:33
1
आप कीमती हैं! तुमने मेरा दिन बचा लिया! इनपुट क्लास एक मुद्दा था। एक और मुद्दा - जहां एचटीएमएल में jQuery कोड शुरू किया गया था। शुक्रिया!
 – 
Elisabeta Aionese
27 नवम्बर 2021, 13:24