web-dev-qa-db-fra.com

Calculer le pourcentage Javascript

J'ai une question sur la logique javascript, ce que j'utilise pour obtenir le pourcentage de deux entrées de mes champs de texte. Voici mon code:

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

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

Pour une raison quelconque, si mes entrées sont 600 et 200, mon résultat est supposé être 33,333 mais j'obtiens 3,333. Si je code dur mes valeurs cela fonctionne bien. Si quelqu'un peut aider, je l'apprécie. Merci d'avance.

3
espresso_coffee

Cela semble fonctionner:

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

});

Démo: http://jsfiddle.net/vikashvverma/1khs8sj7/1/

6
Vikash

Vous pouvez utiliser ceci

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

Exemple pour calculer le pourcentage d'une base de progression de cours dans leurs activités.

const totalActivities = 10;
const doneActivities = 2;

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

Heres une autre approche.

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

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

Échantillon en direct: Calculateur de pourcentage

0
Satinder singh
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