जावास्क्रिप्ट: किसी संख्या के x% की गणना करें


82

मैं सोच रहा हूं कि कैसे जावास्क्रिप्ट में अगर मुझे एक नंबर दिया जाता है (10000 कहो) और फिर एक प्रतिशत दिया गया (35.8% कहो)

मैं कैसे काम करूँगा कि यह कितना है (जैसे 3580)


2
आप संख्या को 35.8% से गुणा करेंगे, जो किvar number=10000; alert(number*0.358);
gnnf

जवाबों:


170
var result = (35.8 / 100) * 10000;

(धन्यवाद Jball आपरेशन के आदेश के इस बदलाव के लिए। मैं यह विचार नहीं किया)।


3
आपको वहां कोष्ठक की आवश्यकता नहीं है।
Klaster_1

63
@ Klaster_1 हाँ, बस रिश्ते को और अधिक स्पष्ट दिखाने की कोशिश कर रहा है। आप कह सकते हैं कि मुझे अर्धविराम की जरूरत नहीं है, या var, या व्हाट्सएप, लेकिन यह बहुत पठनीय या अच्छा कोड नहीं होगा? : पी
एलेक्स

2
संचालन के क्रम को var result = pct / 100 * number;
बदलने

10000 क्यों बांट रहे हैं? ज़रूर, यह सही उत्तर देता है, लेकिन यह शब्दार्थ से अर्थहीन है।
रयान फॉक्स

1
@ रयान फॉक्स 10000 यहाँ वह कुल राशि है जिसके लिए आप प्रतिशत (35.8) की गणना करना चाहते हैं।
कैगी

8

आपका प्रतिशत संख्या से 100 (0 और 1 के बीच प्रतिशत प्राप्त करने के लिए) से विभाजित होता है

35.8/100*10000

7

क्या यही मुझे करना होगा:

// num is your number
// amount is your percentage
function per(num, amount){
  return num*amount/100;
}

...
<html goes here>
...

alert(per(10000, 35.8));


6

यदि आप अपने फ़ंक्शन के भाग के रूप में% पास करना चाहते हैं, तो आपको निम्नलिखित विकल्प का उपयोग करना चाहिए:

<script>
function fpercentStr(quantity, percentString)
{
    var percent = new Number(percentString.replace("%", ""));
    return fpercent(quantity, percent);
}

function fpercent(quantity, percent)
{
    return quantity * percent / 100;
}
document.write("test 1:  " + fpercent(10000, 35.873))
document.write("test 2:  " + fpercentStr(10000, "35.873%"))
</script>

6

सबसे अच्छी बात प्राकृतिक तरीके से बैलेंस समीकरण को याद करना है।

Amount / Whole = Percentage / 100

आमतौर पर आपके पास एक चर गायब होता है, इस मामले में यह राशि है

Amount / 10000 = 35.8 / 100

तब आपके पास हाई स्कूल मैथ (अनुपात) दोनों तरफ से कई बाहरी और दोनों तरफ से आंतरिक होता है।

Amount * 100 = 358 000

Amount = 3580

यह सभी भाषाओं में और कागज पर समान काम करता है। जावास्क्रिप्ट कोई अपवाद नहीं है।


3

फ्लोटिंग पॉइंट मुद्दों से पूरी तरह से बचने के लिए, वह राशि जिसका प्रतिशत गणना की जा रही है और प्रतिशत को ही पूर्णांकों में परिवर्तित करने की आवश्यकता है। यहां बताया गया है कि मैंने इसे कैसे हल किया:

function calculatePercent(amount, percent) {
    const amountDecimals = getNumberOfDecimals(amount);
    const percentDecimals = getNumberOfDecimals(percent);
    const amountAsInteger = Math.round(amount + `e${amountDecimals}`);
    const percentAsInteger = Math.round(percent + `e${percentDecimals}`);
    const precisionCorrection = `e-${amountDecimals + percentDecimals + 2}`;    // add 2 to scale by an additional 100 since the percentage supplied is 100x the actual multiple (e.g. 35.8% is passed as 35.8, but as a proper multiple is 0.358)

    return Number((amountAsInteger * percentAsInteger) + precisionCorrection);
}

function getNumberOfDecimals(number) {
    const decimals = parseFloat(number).toString().split('.')[1];

    if (decimals) {
        return decimals.length;
    }

    return 0;
}

calculatePercent(20.05, 10); // 2.005

जैसा कि आप देख सकते हैं, मैं:

  1. amountऔर दोनों में दशमलव की संख्या गिनेंpercent
  2. घातीय संकेतन का उपयोग करके दोनों amountऔर percentपूर्णांक में कनवर्ट करें
  3. उचित अंतिम मान निर्धारित करने के लिए आवश्यक घातीय संकेतन की गणना करें
  4. अंतिम मान की गणना करें

घातीय संकेतन का उपयोग जैक मूर के ब्लॉग पोस्ट से प्रेरित था । मुझे यकीन है कि मेरा सिंटैक्स कम हो सकता है, लेकिन मैं चर नामों के मेरे उपयोग और प्रत्येक चरण की व्याख्या करने में जितना संभव हो उतना स्पष्ट होना चाहता था।



1

इसकी संख्यात्मक कास्टिंग के साथ यह थोड़ा कठिन / अतिरेक हो सकता है, लेकिन यहां दिए गए संख्या के प्रतिशत की गणना करने के लिए एक सुरक्षित कार्य है:

function getPerc(num, percent) {
    return Number(num) - ((Number(percent) / 100) * Number(num));
}

// Usage: getPerc(10000, 25);

0

हार्डर वे (सीखने का उद्देश्य):

var number = 150
var percent= 10
var result = 0
for (var index = 0; index < number; index++) {
   const calculate = index / number * 100
   if (calculate == percent) result += index
}
return result
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.