目录
Calculate Percentage between Two Numbers in JavaScript
在 JavaScript 中计算两个数字之间的百分比
要计算两个数字之间的百分比,请将一个数字除以另一个数字,然后将结果乘以 100,例如(30 / 75) * 100
。
这显示了第一个数字占第二个数字的百分比。在这个例子中
,30
是40%
。75
function isWhatPercentOf(x, y) { return (x / y) * 100; } // 👇️ `30` is 40% of `75` console.log(isWhatPercentOf(30, 75)); // 👉️ 40 // 👇️ `20` is 26.666% of `75` console.log(isWhatPercentOf(20, 75)); // 👉️ 26.666666...
该函数接受 2 个数字并返回第一个数字占第二个数字的百分比。
例如,25 / 50 * 100
显示25
是50%
的50
。
// 👇️ `25` is 50% of `50` console.log((25 / 50) * 100);
四舍五入到 N 位小数使用toFixed()
计算两个数字之间的百分比时,您可能需要四舍五入到小数点后的特定位数。
您可以使用
Number.toFixed方法来实现这一点。
const percentage = (20 / 75) * 100; console.log(percentage); // 👇️ 26.666666666... // 👇️ 2 decimals const fixed = percentage.toFixed(2); console.log(fixed); // 👉️ "26.67"
该toFixed
方法将数字格式化为小数点后提供的位数,并在必要时四舍五入。
请注意,该toFixed
方法返回一个字符串,而不是一个数字。
如果数字没有任何小数位,则会用零填充。
const percentage = (50 / 100) * 100; console.log(percentage); // 👇️ 50 // 👇️ 2 decimals const fixed = percentage.toFixed(2); console.log(fixed); // 👉️ "50.00"
如果您必须经常这样做,请定义一个可重用的函数。
function isWhatPercentOf(x, y, decimals) { return ((x / y) * 100).toFixed(decimals); } console.log(isWhatPercentOf(20, 75, 2)); // 👉️ 26.67 console.log(isWhatPercentOf(20, 75, 3)); // 👉️ 26.667 console.log(isWhatPercentOf(20, 75, 4)); // 👉️ 26.6667
该函数采用 2 个数字和结果应具有的小数位数,并计算两个数字之间的百分比。
# Calculate the percentage between 2 numbers and round the result
If you need to calculate the percentage between two numbers and round the
result, pass the output of the calculation to the Math.round()
method.
function isWhatPercentOf(x, y) { return Math.round((x / y) * 100); } console.log(isWhatPercentOf(20, 75)); // 👉️ 27 console.log((20 / 75) * 100); // 👉️ 26.66666666
The Math.round method takes a
number and rounds it to the nearest integer.
console.log(Math.round(2.49)); // 👉️ 2 console.log(Math.round(2.5)); // 👉️ 3
0.5
, it gets rounded to the next higher absolute value.If the number is positive and its fractional portion is less than 0.5
, it gets
rounded to the lower absolute value.
If you don’t round the result, you might get a floating-point number that has N
decimal places.
console.log((20 / 75) * 100); // 👉️ 26.66666666
# Get percentage increase/decrease between two numbers
您可以使用相同的方法来获得两个数字之间的百分比增加/减少。
function getPercentageIncrease(numA, numB) { return ((numA - numB) / numB) * 100; } // 👇️ `50` is 66.66% increase from `30` console.log(getPercentageIncrease(50, 30)); // 👉️ 66.666 // 👇️ `50` is 50% decrease from `100` console.log(getPercentageIncrease(50, 100)); // 👉️ -50
30
第一个示例显示从到增加的百分比50
是
66.6666...%
。
100
而第二个例子表明,从到增加的百分比50
是
-50%
。