Есть ли математическая функция в JavaScript, которая преобразует числа в положительное значение?
Преобразование отрицательного числа в положительное в JavaScript
Ответ 1
Вы можете использовать это...
Math.abs(x)
Ответ 2
Как насчет x *= -1
? Мне нравится его простота.
Ответ 3
Math.abs(x)
, или если вы определенные, значение будет отрицательным до того, как преобразование просто добавит обычный знак минуса: x = -x
.
Ответ 4
Знак минус (-) может преобразовывать положительные числа в отрицательные числа и отрицательные числа в положительные числа. x=-y
- визуальный сахар для x=(y*-1)
.
var y = -100;
var x =- y;
Ответ 5
unsigned_value = Math.abs(signed_value);
Ответ 6
var posNum = (num < 0) ? num * -1 : num; // if num is negative multiple by negative one ...
Я нахожу это решение понятным.
Ответ 7
Если вы хотите написать интересный код, который никто еще не сможет обновить, попробуйте следующее:
~ --x
Ответ 8
Отрицательный к положительному
var X = -10 ;
var number = Math.abs(X); //result 10
От положительного к отрицательному
var X = 10 ;
var number = (X)*(-1); //result -10
Ответ 9
Я знаю, что это немного поздно, но для людей, борющихся с этим, вы можете использовать
Преобразование отрицательного в положительное
let x = -54;
let result = Math.abs(x);
Для преобразования положительного в отрицательное
let x = 54;
let result = -Math.abs(x)
Или вы могли бы просто сделать этот короткий метод.
Для преобразования положительных в отрицательные и наоборот
let x = -23;
let result = -(23)
Ответ 10
Умножение на (-1) - самый быстрый способ преобразования отрицательного числа в положительное. Но вы должны быть осторожны, чтобы не преобразовать мою ошибку положительного числа в отрицательное! Поэтому необходима дополнительная проверка...
Тогда Math.abs, Math.floor и parseInt самый медленный.
https://jsperf.com/test-parseint-and-math-floor-and-mathabs/1
Ответ 11
Я сделал что-то подобное сам.
num<0?num*=-1:'';
Он проверяет, является ли число отрицательным, а если оно есть, умножьте с -1 Это возвращает значение, оно зависит от вас, если вы его захватите. Если вы хотите что-то присвоить, вы должны, вероятно, сделать что-то вроде:
var out = num<0?num*=-1:num; //I think someone already mentioned this variant.
Но это действительно зависит от вашей цели. Для меня это было просто, сделать его положительным, если отрицательным, иначе ничего не делать. Отсюда и "код". В этом случае я использовал третичный оператор, которого я хотел, вполне может быть:
if(num<0)num*=-1;
Я видел побитовое решение здесь и хотел прокомментировать его тоже.
~--num; //Drawback for this is that num original value will be reduced by 1
Эта душа очень модно, по моему мнению, мы могли бы переписать ее так:
~(num = num-1);
В простых терминах мы берем отрицательное число, отбираем его и затем побиваем его инвертируем. Если бы мы поразрядно перевернули его, мы бы получили значение 1 слишком мало. Вы также можете сделать это:
~num+1; //Wont change the actual num value, merely returns the new value
Это сделает то же самое, но сначала инвертирует, а затем добавит 1 к положительному числу. Хотя вы не можете сделать это:
~num++; //Wont display the right value.
Это не будет работать из-за precedence, операторы постфикса, такие как num++
, будут оцениваться до ~ и префикс причины ++num
не работает, даже если он имеет тот же приоритет, что и побитовое NOT (~), потому что он оценивается справа налево. Я попытался поменять их, но кажется, что префикс немного по сравнению с побитовым NOT.
+1 будет работать, потому что "+" имеет более высокий приоритет и будет оценен позже.
Я нашел это решение довольно забавным и решил расширить его, поскольку он был просто брошен туда, и публика, смотрящая на него, вероятно, игнорировала его. Хотя да, он не будет работать с поплавками.
Мои надежды на то, что этот пост не отошел от первоначального вопроса.:/
Ответ 12
Мой минимальный подход
Для преобразования отрицательного числа в положительное и наоборот
var num = -24;
num -= num*2;
console.log(num)
// result = 24
Ответ 13
JavaScript - без использования функций:
var x=-9;
var x=((x*x)**0.5);
console.log(x);
Ответ 14
Вы можете использовать оператор ~, который логически преобразует число в отрицательный и добавляет 1 к отрицательному:
var x = 3;
x = (~x + 1);
console.log(x)
// result = -3
Ответ 15
Я знаю другой способ сделать это. Эта техника работает с негативного на позитивное и наоборот
var x = -24;
var result = x * -1;
Наоборот:
var x = 58;
var result = x * -1;
ЖИВОЙ КОД:
// NEGATIVE TO POSITIVE: ******************************************
var x = -24;
var result = x * -1;
console.log(result);
// VICE VERSA: ****************************************************
var x = 58;
var result = x * -1;
console.log(result);
// FLOATING POINTS: ***********************************************
var x = 42.8;
var result = x * -1;
console.log(result);
// FLOATING POINTS VICE VERSA: ************************************
var x = -76.8;
var result = x * -1;
console.log(result);
Ответ 16
Для функционального программирования у Рамды есть хороший метод для этого. Тот же метод работает, переходя от положительного к отрицательному и наоборот.
Ответ 17
Если вы хотите, чтобы число всегда было положительным, независимо от того, что вы можете сделать это.
function toPositive(n){
if(n < 0){
n = n * -1;
}
return n;
}
var a = toPositive(2); // 2
var b = toPositive(-2); // 2
Вы также можете попробовать это, но я не рекомендую это:
function makePositive(n){
return Number((n*-n).toString().replace('-',''));
}
var a = makePositive(2); // 2
var b = makePositive(-2); // 2
Проблема в том, что вы можете изменить число на отрицательное, затем преобразовать в строку и удалить - из строки, а затем преобразовать обратно в int. Что, я думаю, потребует больше обработки, чем просто использование другой функции.
Я проверил это в php, и первая функция работает быстрее, но иногда JS делает некоторые безумные вещи, поэтому я не могу сказать наверняка.