У меня есть метод Java, в котором я суммирую набор чисел. Однако я хочу, чтобы любые отрицательные числа рассматривались как положительные. Таким образом, (1) + (2) + (1) + (- 1) должно быть равно 5.
Я уверен, что есть очень простой способ сделать это - я просто не знаю как.
java
negative-number
Лоток
источник
источник
Ответы:
Просто позвоните Math.abs . Например:
Который будет установлен
x
в5
.источник
Концепция, которую вы описываете, называется «абсолютной величиной», и в Java есть функция Math.abs, которая сделает это за вас. Или вы можете избежать вызова функции и сделать это самостоятельно:
или
источник
Вы ищете абсолютную ценность, приятель.
Math.abs(-5)
возвращает 5 ...источник
Используйте
abs
функцию:источник
источник
Попробуйте это (минус перед x действителен, так как это унарный оператор, узнайте больше здесь ):
При этом вы можете превратить положительное в отрицательное и отрицательное в положительное.
Однако , если вы хотите, чтобы только отрицательное число было положительным, попробуйте следующее:
ИЛИ , если вы по какой-то причине предпочитаете не использовать метод abs (), попробуйте следующее:
Надеюсь, поможет! Удачи!
источник
Вы спрашиваете об абсолютных значениях?
Math.abs (...) - это функция, которую вы, вероятно, хотите.
источник
Вы хотите обернуть каждый номер в
Math.abs()
. напримерраспечатывает «1».
Если вы хотите избежать написания
Math.
-part, вы можете использовать Math статически. Просто пишивместе с вашим импортом, и вы можете обратиться к
abs()
-функции просто написависточник
Самый простой, если многословный способ сделать это - это обернуть каждый номер в вызове Math.abs (), поэтому вы должны добавить:
с изменениями логики, чтобы отразить, как ваш код структурирован. Возможно, многословно, но оно делает то, что вы хотите.
источник
-
знак (ы)? Или иначе, в том числе, если у него нет контроля, не лучше ли использовать такую функцию, какabsoluteSum( int[] values ){ /*loop with Math.abs()*/ }
вместо ручной обертки Math.abs () в каждом значении? [-1]Когда вам нужно представить значение без понятия потери или отсутствия (отрицательное значение), это называется «абсолютным значением».
Логика , чтобы получить абсолютное значение очень просто:
"If it's positive, maintain it. If it's negative, negate it"
.Это означает, что ваша логика и код должны работать следующим образом:
Есть два способа отменить значение:
value = (-value);
value = value * (-1);
Обе они на самом деле две стороны одной медали. Просто ты обычно не помнишь, что
value = (-value);
на самом делеvalue = 1 * (-value);
.Что касается того, как вы на самом деле делаете это в Java, это очень просто, потому что Java уже предоставляет функцию для этого в
Math class
:value = Math.abs(value);
Да, без этого
Math.abs()
- просто строка кода с очень простой математикой, но зачем делать ваш код уродливым? Просто используйтеMath.abs()
функцию Java ! Они предоставляют это по причине!Если вам абсолютно необходимо пропустить функцию, вы можете использовать ее
value = (value < 0) ? (-value) : value;
, которая является просто более компактной версией кода, который я упомянул в разделе логики (3-й), с использованием оператора Ternary (? :
) .Кроме того, могут быть ситуации, когда вы хотите всегда представлять потерю или отсутствие в функции, которая может принимать как положительные, так и отрицательные значения.
Вместо сложной проверки вы можете просто получить абсолютное значение и опровергнуть его:
negativeValue = (-Math.abs(value));
Имея это в виду и рассматривая случай с суммой нескольких чисел, таких как ваше, было бы неплохо реализовать функцию:
В зависимости от вероятности, что вам может понадобиться снова связанный код, также может быть хорошей идеей добавить их в вашу собственную библиотеку «utils», сначала разделить такие функции на их основные компоненты и поддерживать конечную функцию просто как гнездо вызовов для разделенные функции основных компонентов:
источник
Почему не ты
multiply that number with -1
?Как это:
источник
Если вы заинтересованы в механике дополнения до двух, вот абсолютно неэффективный, но иллюстративный низкоуровневый способ сделать это:
источник
Я бы порекомендовал следующие решения:
без веселья
(Выше не работает.)
с lib fun:
источник
В качестве альтернативы:
источник
Библиотечная функция
Math.abs()
может быть использована.Math.abs()
возвращает абсолютное значение аргументанапример:
int x=-5;
System.out.println(Math.abs(x));
Выход: 5
int y=6;
System.out.println(Math.abs(y));
Выход: 6
источник
Чтобы преобразовать отрицательное число в положительное число (это называется абсолютным значением), используется Math.abs (). Этот метод Math.abs () работает следующим образом
“number = (number < 0 ? -number : number);".
В приведенном ниже примере,
Math.abs(-1)
будет преобразовывать отрицательное число 1 в положительное 1.public static void main (String [] args) {
источник
Мне нужно было абсолютное значение long, и я внимательно изучил Math.abs и обнаружил, что если мой аргумент меньше LONG.MIN_VAL, который равен -9223372036854775808l, то функция abs не будет возвращать абсолютное значение, а только минимальное значение. В этом случае, если ваш код использует это значение abs дальше, то это может быть проблемой.
источник
Можете ли вы попробовать это?
источник
В kotlin вы можете использовать unaryPlus
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/unary-plus.html
источник
не делай этого
число = (число <0? -номер: число);
или
if (число <0) число = -номер;
это будет ошибка, когда вы запустите поиск ошибки в вашем коде, он сообщит об этом как RV_NEGATING_RESULT_OF
источник