Вычесть определенную процентную сумму в значение - PullRequest
0 голосов
/ 12 июня 2019

Я получаю разные значения из API, и мне нужно выполнить математическую операцию с этими данными.

У меня есть основное значение, например:

37.8 (it's a Number)

и процент:

0.01% (a String)

Что мне нужно сделать, это:

37.8 -0.01%

Но процент также может быть положительным. Как я могу это сделать? Я также могу использовать jQuery.

Мой ожидаемый результат - это разница между основным числом и процентом, добавляется или вычитается погоду.

Ответы [ 3 ]

2 голосов
/ 12 июня 2019
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 в значение с плавающей точкой, которое в данном случае составляет 0,01, и присваивает его c. Если ваше строковое значение имеет отрицательный знак, parseFloat возвращает отрицательное значение. Таким образом, нет необходимости беспокоиться о знаке. Теперь, когда вы вычитаете a * c / 100 (то есть c% от a) из a, вы получаете свой результат.

2 голосов
/ 12 июня 2019

Первое, что вы делаете, это превращаете процентную строку в число:

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%");
0 голосов
/ 12 июня 2019

Первая проблема - разобрать строку, я предполагаю, что она не содержит фактического знака процента.

Следующая проблема - математика, как говорили люди.

Например:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...