मैं एकाधिक इनपुट के मूल्यों की गणना करने की कोशिश कर रहा हूं। यहाँ मेरा कोड है।

var sum = 0;
$('.total_t').each(function() {
  sum += parseFloat(this.value);
});
$('#debtor_t_o_debtors').val(sum.toFixed(2));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="numeric total_t" value="12,584,436.86" type="text">
<input class="numeric total_t" value="558,718.60" type="text">
<input class="numeric total_t" value="9,013.25" type="text">
<input class="numeric total_t" value="0.00" type="text">

<input class="numeric" value="" type="text" id="debtor_t_o_debtors">

लेकिन दुर्भाग्य से मुझे उत्तर के रूप में 579 मिल रहे हैं जो गलत है। अगर कोई बता सकता है कि यहां क्या त्रुटि है तो यह बहुत मददगार होगा।

0
Drake Perera 23 जिंदा 2020, 11:14

4 जवाब

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

आपके value में अल्पविराम हैं, और अल्पविराम मिलने पर parseFloat पार्स करना बंद कर देता है।

प्रत्येक कॉमा को पहले खाली स्ट्रिंग से बदलें:

var sum = 0;
$('.total_t').each(function() {
  sum += parseFloat(this.value.replace(/,/g, ''));
});
$('#debtor_t_o_debtors').val(
  sum.toFixed(2)
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="numeric total_t" value="12,584,436.86" type="text">
<input class="numeric total_t" value="558,718.60" type="text">
<input class="numeric total_t" value="9,013.25" type="text">
<input class="numeric total_t" value="0.00" type="text">

<br>
<input class="numeric" value="" type="text" id="debtor_t_o_debtors">

जोड़ने के बाद परिणाम में अल्पविराम जोड़ने के लिए, ३, ६, ९, आदि अंकों के वर्णों के लिए एक नियमित अभिव्यक्ति का उपयोग करें, उसके बाद एक .:

var sum = 0;
$('.total_t').each(function() {
  sum += parseFloat(this.value.replace(/,/g, ''));
});
$('#debtor_t_o_debtors').val(
  sum
    .toFixed(2)
    .replace(/(?!^)(?=(?:\d{3})+\.)/g, ',')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="numeric total_t" value="12,584,436.86" type="text">
<input class="numeric total_t" value="558,718.60" type="text">
<input class="numeric total_t" value="9,013.25" type="text">
<input class="numeric total_t" value="0.00" type="text">

<br>
<input class="numeric" value="" type="text" id="debtor_t_o_debtors">
4
CertainPerformance 23 जिंदा 2020, 11:18

समस्या आपके इनपुट फ़ील्ड में , के साथ है, इसे हटा दें आपको कुल सही मिलेगा।

var sum = 0;
$('.total_t').each(function () {
    console.log(parseFloat(this.value), this.value);
    sum += parseFloat(this.value);
});
$('#debtor_t_o_debtors').val(sum.toFixed(2));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="numeric total_t"  value="12584436.86" type="text">
<input class="numeric total_t"  value="558718.60" type="text">
<input class="numeric total_t"  value="9013.25" type="text">
<input class="numeric total_t"  value="0.00" type="text">
<input class="numeric" value="" type="text" id="debtor_t_o_debtors">
1
Amit Chauhan 23 जिंदा 2020, 11:18

अंक और बिंदु के अलावा अन्य सभी वर्णों को रिक्त से बदलें

var sum = 0;
$('.total_t').each(function() {
  sum += parseFloat(this.value.replace(/[^\d\.\-]/g, ""));
});
$('#debtor_t_o_debtors').val(
  sum.toFixed(2)
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="numeric total_t" value="12,584,436.86" type="text">
<input class="numeric total_t" value="558,718.60" type="text">
<input class="numeric total_t" value="9,013.25" type="text">
<input class="numeric total_t" value="0.00" type="text">

<br>
<input class="numeric" value="" type="text" id="debtor_t_o_debtors">
1
Ranjit Singh 23 जिंदा 2020, 11:24

आपके इनपुट मान में अल्पविराम है जिसे आपको पहले अल्पविराम को हटाने की आवश्यकता है और फिर आप आवश्यकता पड़ने पर परिणाम में फिर से अल्पविराम जोड़ सकते हैं।

var sum = 0;
        $('.total_t').each(function() {
          sum += parseFloat(this.value.replace(/,/g, ''));
        });
        $('#debtor_t_o_debtors').val(
          sum.toFixed(2).toLocaleString()
        );
0
Muhammad Haseeb 23 जिंदा 2020, 11:37