计算百分比Javascript

问题描述 投票:3回答:6

我有一个关于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。如果我硬编码我的值,这很好。如果有人可以帮助我,我很感激。提前致谢。

javascript html percentage argument-passing
6个回答
7
投票

它似乎有效:

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);
    }

});

但是:ku zxsw指出


9
投票

你可以用它

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

用于计算课程进度基数在其活动中的百分比的示例。

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

0
投票
const totalActivities = 10;
const doneActivities = 2;

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

0
投票

这是另一种方法。

HTML:

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

JS代码:

<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/>

现场样本: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); });



-2
投票

尝试

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);
    }

谢谢

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.