Сделайте отрицательное число положительным



У меня есть метод Java, в котором я суммирую набор чисел. Однако я хочу, чтобы любые отрицательные числа рассматривались как положительные. Так что (1)+(2)+(1)+(-1) должно равняться 5.



Я уверен, что есть очень простой способ сделать это - я просто не знаю как.

775   16  

16 ответов:

просто позвони математика.АБС. Например:

int x = Math.abs(-5);

который установит x to 5.

концепция, которую вы описываете, называется "абсолютное значение", а Java имеет функцию математика.АБС чтобы сделать это за вас. Или вы можете избежать вызова функции и сделать это самостоятельно:

number = (number < 0 ? -number : number);

или

if (number < 0)
    number = -number;

ты ищешь абсолютное значение, приятель. Math.abs(-5) возвращает 5...

использовать abs функция:

int sum=0;
for(Integer i : container)
  sum+=Math.abs(i);

этот код можно безопасно вызывать и на положительные числа.

int x = -20
int y = x + (2*(-1*x));
// Therefore y = -20 + (40) = 20

вы спрашиваете об абсолютных значениях?

математика.пресс.(..) это функция, которую вы, вероятно, хотите.

вы хотите обернуть каждое число в Math.abs(). например,

System.out.println(Math.abs(-1));

выводит "1".

если вы хотите избежать написания Math.-часть, вы можете включить математику util статически. Просто напишите

import static java.lang.Math.abs;

вместе с вашим импортом, и вы можете сослаться на abs()-функция, просто писать

System.out.println(abs(-1));

самый простой, если трудоемкий способ сделать это, чтобы обернуть каждое число в математике.АБС() вызов, так что вы бы добавить:

Math.abs(1) + Math.abs(2) + Math.abs(1) + Math.abs(-1)

с логическими изменениями, чтобы отразить, как ваш код структурирован. Многословный, возможно, но он делает то, что вы хотите.

когда вам нужно представить значение Без понятия потери или отсутствия (отрицательное значение), это называется "абсолютное значение".


логика получения абсолютного значения очень проста:"If it's positive, maintain it. If it's negative, negate it".


это означает, что ваша логика и код должен работать следующим образом:

//If value is negative...
if ( value < 0 ) {
  //...negate it (make it a negative negative-value, thus a positive value).
  value = negate(value);
}

есть 2 способа отрицать значение:

  1. Ну, отрицая его ценность: value = (-value);
  2. умножив его на "100% отрицательный", или "-1":value = value * (-1);

оба на самом деле две стороны одной монеты. Просто ты обычно этого не помнишь value = (-value); на самом деле value = 1 * (-value);.


Ну, что касается того, как вы на самом деле делаете это в Java, это очень просто, потому что Java уже предоставляет функцию для этого, в Math class:value = Math.abs(value);

да, делая это без Math.abs() это просто строка кода с очень простой математика, но почему ваш код выглядит уродливо? Просто используйте Java при условии

почему бы тебе не multiply that number with -1?

Такой:

//Given x as the number, if x is less than 0, return 0 - x, otherwise return x:
return (x <= 0.0F) ? 0.0F - x : x;

без lib fun:

    value = (value*value)/value

С lib fun:

   value=Math.abs(value);

попробуйте это:

int answer = x * -1;

С помощью этого вы можете превратить положительное в отрицательное и отрицательное в положительное.

надеюсь, что это помогает! Удачи Вам!

Если вас интересует механика дополнения two, вот абсолютно неэффективный, но иллюстративный способ низкого уровня:

private static int makeAbsolute(int number){
     if(number >=0){
        return number;
     } else{
        return (~number)+1;
     }
}
String s = "-1139627840";
BigInteger bg1 = new BigInteger(s);
System.out.println(bg1.abs());

кроме того:

int i = -123;
System.out.println(Math.abs(i));

Мне нужно было абсолютное значение долго, и заглянул глубоко в математику.АБС и обнаружил, что если мой аргумент меньше, чем долго.MIN_VAL, который является -9223372036854775808l, то функция abs не будет возвращать абсолютное значение, а только минимальное значение. В этом случае, если ваш код использует это значение abs дальше, то может возникнуть проблема.

Не делай этого

число = (число

или

Если (число

Это будет ошибка при запуске найти ошибку в коде он сообщит об этом как RV_NEGATING_RESULT_OF

Comments

    Ничего не найдено.