我从API获得了不同的值,我需要对该数据执行数学运算。
我具有主要价值,例如:
37.8 (it's a Number)
和百分比:
0.01% (a String)
我需要做的是:
37.8 -0.01%
但是该百分比也可以是正数。我怎样才能做到这一点?我也可以使用jQuery。
我的预期结果是主数字和百分比之间的差,无论是相加还是相减。
答案 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);