テキストフィールドから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になります。私の値をハードコーディングすると、これは正常に機能します。誰かが私を助けることができれば私はそれを感謝します。前もって感謝します。
それは働いているようです:
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);
}
});
これを使えます
function percentage(partialValue, totalValue) {
return (100 * partialValue) / totalValue;
}
アクティビティのコース進捗状況ベースの割合を計算する例。
const totalActivities = 10;
const doneActivities = 2;
percentage(doneActivities, totalActivities) // Will return 20 that is 20%
数値のパーセンテージを取得するには、目的のパーセンテージpercentにそのnumberを乗算する必要があります。実際には、次のようになります。
_function percentage(percent, total) {
return ((percent/ 100) * total).toFixed(2)
}
_
使用例:
_const percentResult = percentage(10, 100);
// print 10.00
_
.toFixed()
は、通貨形式ではオプションです。
もう一つの方法はこちらです。
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);
});
ライブサンプル: パーセント計算
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);
}
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