将给定的百分比金额减去一个值

时间:2019-06-12 07:37:28

标签: javascript jquery math

我从API获得了不同的值,我需要对该数据执行数学运算。

我具有主要价值,例如:

37.8 (it's a Number)

和百分比:

0.01% (a String)

我需要做的是:

37.8 -0.01%

但是该百分比也可以是正数。我怎样才能做到这一点?我也可以使用jQuery。

我的预期结果是主数字和百分比之间的差,无论是相加还是相减。

3 个答案:

答案 0 :(得分:2)

您要做的第一件事是将百分比字符串转换为数字:

const percent = percentString.replace("%", "") / 100;

这将删除%并转换为数字,然后除以100,因为这是您从“百分比”到可用于应用该百分比的数字的方式(“百分比”的字面意思是“百分比” “)。

然后,您将原始数字除以该百分比数字而得到的结果减去原始数字:

const number = 37.8;
const percentString = "0.01%";
const percent = percentString.replace("%", "") / 100;
const result = number - number * percent;
console.log(result);

如果字符串为负(也可以增加数字),也可以使用:

const number = 37.8;
const percentString = "-0.01%";
const percent = percentString.replace("%", "") / 100;
const result = number - number * percent;
console.log(result);

使用更明显的计算(100%和10%)的示例:

function example(percentString) {
    const number = 100;
    const percent = percentString.replace("%", "") / 100;
    const result = number - number * percent;
    console.log(number, "-", percentString, "=", result);
}
example("10%");
example("-10%");

答案 1 :(得分:2)

var a = 37.8           //number
var b = "0.01%"        //string
var c = parseFloat(b)  //converts to float, c = 0.01
var result = a-c*a/100

您可以从API中的变量a和b中获取值。如前所述,a是数字,b是字符串。 parseFloat将b转换为float值,在这种情况下恰好是0.01,并将其分配给c。如果您的字符串值带有负号,则parseFloat返回一个负值。因此,无需担心该标志。现在,当您从a减去a * c / 100(即a的c%)时,您会得到结果。

答案 2 :(得分:0)

第一个问题是解析字符串,我假设它不包含实际的百分号。

下一个问题是人们所说的数学。

例如:

5%= 37.8 * 1.05

-5%= 37.8 * 0.95

const pct = parseFloat("0.01");
const result = 37.8 * ((100 + pct) / 100);
console.log(result);