web-dev-qa-db-ja.com

Javascriptの割合を計算する

テキストフィールドから2つの入力の割合を取得するために使用する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になります。私の値をハードコーディングすると、これは正常に機能します。誰かが私を助けることができれば私はそれを感謝します。前もって感謝します。

11
espresso_coffee

それは働いているようです:

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/

10
Vikash

これを使えます

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

アクティビティのコース進捗状況ベースの割合を計算する例。

const totalActivities = 10;
const doneActivities = 2;

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

数値のパーセンテージを取得するには、目的のパーセンテージpercentにそのnumberを乗算する必要があります。実際には、次のようになります。

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

使用例:

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

.toFixed()は、通貨形式ではオプションです。

3

もう一つの方法はこちらです。

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

ライブサンプル: パーセント計算

0
Satinder singh
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);
    }
0
Zia Qureshi
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
0
M.A.K. Ripon