给一个负数表示肯定
我有一个Java方法,我总结了一组数字。 不过,我希望任何负数都被视为正数。 所以(1)+(2)+(1)+( – 1)应该等于5。
我确信有这样做的很简单的方法 – 我只是不知道如何。
只要打电话Math.abs 。 例如:
int x = Math.abs(-5);  其中将x设置为5 。 
你所描述的概念被称为“绝对值”,Java有一个叫做Math.abs的函数来为你做。 或者你可以避免函数调用,自己动手:
 number = (number < 0 ? -number : number); 
要么
 if (number < 0) number = -number; 
 你正在寻找绝对的价值,伙伴。  Math.abs(-5)返回5 … 
 使用absfunction: 
 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.  – 部分,你可以静态包含Math util。 写吧 
 import static java.lang.Math.abs; 
 以及你的import,你可以通过写作来引用abs()函数 
 System.out.println(abs(-1)); 
没有lib的乐趣:
  value = (value*value)/value 
与lib乐趣:
  value=Math.abs(value); 
你在问绝对的价值吗?
Math.abs(…)是您可能需要的function。
最简单的方法是将每个数字包装在一个Math.abs()调用中,所以你可以添加:
 Math.abs(1) + Math.abs(2) + Math.abs(1) + Math.abs(-1) 
通过逻辑的改变来反映你的代码的结构。 也许是绝妙的,但它确实是你想要的。
当你需要expression一个没有损失或缺失的概念(负值)时,这就是所谓的“绝对值”。
 获得绝对值的逻辑非常简单: "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); } 
有两种方法可以否定一个值:
-  通过,否定它的价值: value = (-value);
-  通过乘以“100%负数”或“-1”: value = value * (-1);
 两者实际上是同一枚硬币的两面。 这只是你通常不记得value = (-value); 其实value = 1 * (-value);  。 
 那么,至于如何在Java中实际执行它,则非常简单,因为Java已经为Math class提供了一个函数: value = Math.abs(value); 
 是的,在没有Math.abs()情况下这样做只是一行非常简单的math代码,但为什么让你的代码看起来很丑? 只需使用Java提供的Math.abs()函数! 他们提供这个理由! 
 如果你绝对需要跳过这个函数,你可以使用value = (value < 0) ? (-value) : value; value = (value < 0) ? (-value) : value;  ,这只是我在逻辑(第三)部分提到的使用三元运算符( ? : :)的代码更紧凑的版本。 
此外,可能会出现这样的情况:在可能同时接收正值和负值的函数内,您总是要表示丢失或缺失。
 而不是做一些复杂的检查,你可以简单地得到绝对值,并取消它: negativeValue = (-Math.abs(value)); 
考虑到这一点,并考虑一个例如你的多个数字的情况下,实现一个函数将是一个不错的主意:
 int getSumOfAllAbsolutes(int[] values){ int total = 0; for(int i=0; i<values.lenght; i++){ total += Math.abs(values[i]); } return total; } 
根据您可能需要再次使用相关代码的可能性,将它们添加到您自己的“utils”库中,首先将这些函数分解为其核心组件,然后将最终function简单地保存为调用嵌套核心组件的现在分裂function:
 int[] makeAllAbsolute(int[] values){ //@TIP: You can also make a reference-based version of this function, so that allocating 'absolutes[]' is not needed, thus optimizing. int[] absolutes = values.clone(); for(int i=0; i<values.lenght; i++){ absolutes[i] = Math.abs(values[i]); } return absolutes; } int getSumOfAllValues(int[] values){ int total = 0; for(int i=0; i<values.lenght; i++){ total += values[i]; } return total; } int getSumOfAllAbsolutes(int[] values){ return getSumOfAllValues(makeAllAbsolute(values)); } 
 你为什么不把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; 
如果你对二进制补充的机制感兴趣的话,下面是绝对低效的,但是说明性的低级方式:
 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)); 
尝试这个:
 int answer = x * -1; 
有了这个,你可以把一个积极的消极和消极的积极。
希望能帮助到你! 祝你好运!
我需要一个很长的绝对值,深入研究Math.abs,发现如果我的参数小于LONG.MIN_VAL,即-9223372036854775808l,那么abs函数将不会返回绝对值,而只会返回最小值。 在这种情况下,如果你的代码进一步使用这个abs值,那么可能会有一个问题。
不要这样做
number =(number <0?-number:number);
要么
if(number <0)number = – number;
这将是一个错误,当你运行你的代码时发现错误,它会报告为RV_NEGATING_RESULT_OF