【问题标题】:Calculate percentage Javascript计算百分比Javascript
【发布时间】:2015-09-04 11:37:29
【问题描述】:

我有一个关于 javascript 逻辑的问题,我用什么来从我的文本字段中获取两个输入的百分比。这是我的代码:

    var pPos = $('#pointspossible').val();
    var pEarned = $('#pointsgiven').val();

    var perc = ((pEarned/pPos) * 100).toFixed(3);
    $('#pointsperc').val(perc);

由于某种原因,如果我的输入是 600 和 200,我的结果应该是 33.333,但我得到的是 3.333。如果我对我的价值观进行硬编码,则效果很好。如果有人可以提供帮助,我将不胜感激。提前致谢。

【问题讨论】:

  • 您确定 pPos 和 pEarned 是这些值吗?

标签: javascript html percentage argument-passing


【解决方案1】:

你可以用这个

function percentage(partialValue, totalValue) {
   return (100 * partialValue) / totalValue;
} 

计算课程进度在他们的活动中所占百分比的示例。

const totalActivities = 10;
const doneActivities = 2;

percentage(doneActivities, totalActivities) // Will return 20 that is 20%

【讨论】:

  • 请注意:如果partialValue = 0totalValue = 0,这将返回NaN
【解决方案2】:

它似乎工作:

HTML:

 <input type='text' id="pointspossible"/>
<input type='text' id="pointsgiven" />
<input type='text' id="pointsperc" disabled/>

JavaScript:

    $(function(){

    $('#pointspossible').on('input', function() {
      calculate();
    });
    $('#pointsgiven').on('input', function() {
     calculate();
    });
    function calculate(){
        var pPos = parseInt($('#pointspossible').val()); 
        var pEarned = parseInt($('#pointsgiven').val());
        var perc="";
        if(isNaN(pPos) || isNaN(pEarned)){
            perc=" ";
           }else{
           perc = ((pEarned/pPos) * 100).toFixed(3);
           }

        $('#pointsperc').val(perc);
    }

});

演示:http://jsfiddle.net/vikashvverma/1khs8sj7/1/

【讨论】:

  • 如果值为空怎么办?
  • 你需要先检查一下。我刚刚给了你一个 POC,它可以工作。
  • 我已经有了。我不需要硬编码值。还是谢谢。
  • 那么你是如何获得价值 3.333 的?
  • 我不知道,这就是问题所在。我正在从输入字段中传递输入的值,并得到该输出。
【解决方案3】:

试试:

const result = Math.round((data.expense / data.income) * 100)

【讨论】:

    【解决方案4】:

    要获得一个数字的百分比,我们需要将所需的百分比 percent 乘以该 number。在实践中,我们将:

    function percentage(percent, total) {
        return ((percent/ 100) * total).toFixed(2)
    }
    

    使用示例:

    const percentResult = percentage(10, 100);
    // print 10.00
    

    .toFixed() 对于货币格式是可选的。

    【讨论】:

    • 回答有点居高临下。
    • toFixed() 会将值大小写成字符串。
    【解决方案5】:
    var number = 5000;
    var percentX = 12;
    var result;
    
    function percentCalculation(a, b){
      var c = (parseFloat(a)*parseFloat(b))/100;
      return parseFloat(c);
    }
    
    result = percentCalculation(number, percentX); //calculate percentX% of number
    

    【讨论】:

      【解决方案6】:

      这是另一种方法。

      HTML:

      <input type='text' id="pointspossible" class="clsInput" />
      <input type='text' id="pointsgiven"  class="clsInput" />
      <button id="btnCalculate">Calculate</button>
      <input type='text' id="pointsperc" disabled/>
      

      JS 代码:

      function isNumeric(n) {
          return !isNaN(parseFloat(n)) && isFinite(n);
      }
      
      
      $('#btnCalculate').on('click', function() {
          var a = $('#pointspossible').val().replace(/ +/g, "");
          var b = $('#pointsgiven').val().replace(/ +/g, "");
          var perc = "0";
          if (a.length > 0 && b.length > 0) {
              if (isNumeric(a) && isNumeric(b)) {
                  perc = a / b * 100;
              }
          }    
          $('#pointsperc').val(perc).toFixed(3);
      });
      

      现场样例:Percentage Calculator

      【讨论】:

        【解决方案7】:

        function calculate() {
            // amount
                var salary = parseInt($('#salary').val());
            // percent    
                var incentive_rate = parseInt($('#incentive_rate').val());
                var perc = "";
                if (isNaN(salary) || isNaN(incentive_rate)) {
                    perc = " ";
                } else {
                    perc =  (incentive_rate/100) * salary;
                  
        
                } $('#total_income').val(perc);
            }

        【讨论】:

        • 请解释一下
        【解决方案8】:

        对于百分比增加和减少,使用 2 种不同的方法:

        const a = 541
        const b = 394
        
        // Percent increase 
        console.log(
          `Increase (from ${b} to ${a}) => `,
          (((a/b)-1) * 100).toFixed(2) + "%",
        )
        
        // Percent decrease
        console.log(
          `Decrease (from ${a} to ${b}) => `,
          (((b/a)-1) * 100).toFixed(2) + "%",
        )
        
        // Alternatives, using .toLocaleString() 
        console.log(
          `Increase (from ${b} to ${a}) => `,
          ((a/b)-1).toLocaleString('fullwide', {maximumFractionDigits:2, style:'percent'}),
        )
        
        console.log(
          `Decrease (from ${a} to ${b}) => `,
          ((b/a)-1).toLocaleString('fullwide', {maximumFractionDigits:2, style:'percent'}),
        )

        【讨论】:

          【解决方案9】:

          <div id="contentse "><br>
                <h2>Percentage Calculator</h2>
              <form action="/charactercount" class="align-items-center" style="border: 1px solid #eee;padding:15px;" method="post" enctype="multipart/form-data" name="form">
                  <input type="hidden" name="csrfmiddlewaretoken" value="NCBdw9beXfKV07Tc1epTBPqJ0gzfkmHNXKrAauE34n3jn4TGeL8Vv6miOShhqv6O">
                  <div style="border: 0px solid white;color:#eee;padding:5px;width:900px">
                  <br><div class="input-float" style="float: left;"> what is <input type="text" id="aa" required=""> % of <input type="text" id="ab"> ? </div><div class="output-float"><input type="button" class="crm-submit" value="calculate" onclick="calculatea()"> &nbsp; <input type="text" id="ac" readonly="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div><br style="clear: both;"> </div><br>
                  <hr><br>
                  
                  <div style="border: 0px solid white;color:#eee;padding:5px;width:900px">
                  <div class="input-float" style="float: left;"><input type="text" id="ba"> is what percent of <input type="text" id="bb"> ? </div><div class="output-float"><input type="button" class="crm-submit" value="calculate" onclick="calculateb()"> &nbsp; <input type="text" id="bc" readonly=""> &nbsp; % </div><br style="clear: both;"></div><br>
                  <hr><br>
                  
                  <div style="border: 0px solid white;color:#eee;padding:5px;width:900px">
                  Find percentage change(increase/decrease) <br><br>
                  <div class="input-float" style="float: left;">from <input type="text" id="ca"> to <input type="text" id="cb">&nbsp;?  </div><div class="output-float"><input type="button" class="crm-submit" value="calculate" onclick="calculatec()"> &nbsp; <input type="text" id="cc" readonly="">&nbsp;%</div><br style="clear: both;"></div>
              </form>
              </div>

          此处的示例:setool-percentage-calculator

          【讨论】:

            【解决方案10】:

            如何计算回报率

            function sum (a,b){
             let s = a+b
             return s;
             }
             
             let total= sum(20,20)
             percentage(total);
             
             function percentage(t){
             let per = t/200*100;
             document.write(per);
             }

            【讨论】:

            • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
            【解决方案11】:

            试试

            var result = (35.8 / 100) * 10;
            

            谢谢

            【讨论】:

            • @BrunoQuaresma 但它对我来说很适用于一个计算目的。
            • 这是静态公式,我们不能在开发中传递静态的东西。
            • 你应该分享通用公式而不是静态值。
            猜你喜欢
            • 2017-02-08
            • 2019-04-03
            • 1970-01-01
            • 2012-09-20
            • 2011-06-01
            • 2021-01-10
            • 1970-01-01
            • 2015-09-07
            相关资源
            最近更新 更多