在 JavaScript 中计算两个数字之间的百分比

目录

Calculate Percentage between Two Numbers in JavaScript

  1. 在 JavaScript 中计算两个数字之间的百分比
  2. 使用四舍五入到小数点后 N 位toFixed()
  3. 计算两个数字之间的百分比并对结果进行四舍五入
  4. 获取两个数字之间的百分比增加/减少

在 JavaScript 中计算两个数字之间的百分比

要计算两个数字之间的百分比,请将一个数字除以另一个数字,然后将结果乘以 100,例如(30 / 75) * 100

这显示了第一个数字占第二个数字的百分比。在这个例子中
3040%75

索引.js
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显示2550%50

索引.js
// 👇️ `25` is 50% of `50` console.log((25 / 50) * 100);

四舍五入到 N 位小数使用toFixed()

计算两个数字之间的百分比时,您可能需要四舍五入到小数点后的特定位数。

您可以使用
Number.toFixed方法来实现这一点。

索引.js
const percentage = (20 / 75) * 100; console.log(percentage); // 👇️ 26.666666666... // 👇️ 2 decimals const fixed = percentage.toFixed(2); console.log(fixed); // 👉️ "26.67"

toFixed方法将数字格式化为小数点后提供的位数,并在必要时四舍五入。

请注意,该toFixed方法返回一个字符串,而不是一个数字。

如果数字没有任何小数位,则会用零填充。

索引.js
const percentage = (50 / 100) * 100; console.log(percentage); // 👇️ 50 // 👇️ 2 decimals const fixed = percentage.toFixed(2); console.log(fixed); // 👉️ "50.00"

如果您必须经常这样做,请定义一个可重用的函数。

索引.js
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.

index.js
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.

index.js
console.log(Math.round(2.49)); // 👉️ 2 console.log(Math.round(2.5)); // 👉️ 3
If the number is positive and its fractional part is greater than or equal to 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.

index.js
console.log((20 / 75) * 100); // 👉️ 26.66666666

# Get percentage increase/decrease between two numbers

您可以使用相同的方法来获得两个数字之间的百分比增加/减少。

索引.js
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%