计算百分比Javascript
Posted
技术标签:
【中文标题】计算百分比Javascript【英文标题】:Calculate percentage 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 是这些值吗? 【参考方案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 = 0
和totalValue = 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()"> <input type="text" id="ac" readonly=""> </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()"> <input type="text" id="bc" readonly=""> % </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"> ? </div><div class="output-float"><input type="button" class="crm-submit" value="calculate" onclick="calculatec()"> <input type="text" id="cc" readonly=""> %</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 但它对我来说很适用于一个计算目的。 这是静态公式,我们不能在开发中传递静态的东西。 你应该分享通用公式而不是静态值。以上是关于计算百分比Javascript的主要内容,如果未能解决你的问题,请参考以下文章