valores valor validar positivos positivo pasar numeros numero negativos negativo leer hacer convertirlos convertir absoluto java negative-number

valor - validar numeros negativos java



Hacer un nĂºmero negativo positivo (16)

¿Estás preguntando sobre valores absolutos?

Math.abs (...) es la función que probablemente quieras.

Tengo un método Java en el que estoy sumando un conjunto de números. Sin embargo, quiero que los números negativos sean tratados como positivos. Entonces (1) + (2) + (1) + (- 1) debería ser igual a 5.

Estoy seguro de que hay una manera muy fácil de hacerlo, simplemente no sé cómo.


¿Por qué no multiply that number with -1 ?

Me gusta esto:

//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;


Cuando necesita representar un valor sin el concepto de pérdida o ausencia (valor negativo), eso se llama "valor absoluto".

La lógica para obtener el valor absoluto es muy simple: "If it''s positive, maintain it. If it''s negative, negate it" .

Lo que esto significa es que su lógica y código deberían funcionar de la siguiente manera:

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

Hay 2 formas en que puede negar un valor:

  1. Por, bueno, negando su valor: value = (-value);
  2. Al multiplicarlo por "100% negativo", o "-1": value = value * (-1);

Ambos son en realidad dos caras de la misma moneda. Es solo que usualmente no recuerdas ese value = (-value); en realidad es value = 1 * (-value); .

Bueno, en cuanto a cómo realmente lo haces en Java, es muy simple, porque Java ya proporciona una función para eso, en la Math class : value = Math.abs(value);

Sí, hacerlo sin Math.abs() es solo una línea de código con matemática muy simple, pero ¿por qué hacer que tu código se vea feo? Solo use la función Math.abs() proporcionada por Java. Lo proporcionan por una razón!

Si necesita saltear la función, puede usar value = (value < 0) ? (-value) : value; value = (value < 0) ? (-value) : value; , que es simplemente una versión más compacta del código que mencioné en la sección de lógica (3ra), usando el operador Ternary ( ? : :) .

Además, puede haber situaciones en las que desee representar siempre la pérdida o la ausencia dentro de una función que podría recibir valores tanto positivos como negativos.

En lugar de hacer una comprobación complicada, simplemente puede obtener el valor absoluto y negativeValue = (-Math.abs(value)); : negativeValue = (-Math.abs(value));

Con eso en mente, y considerando un caso con una suma de varios números como el suyo, sería una buena idea implementar una función:

int getSumOfAllAbsolutes(int[] values){ int total = 0; for(int i=0; i<values.lenght; i++){ total += Math.abs(values[i]); } return total; }

Dependiendo de la probabilidad de que necesite código relacionado nuevamente, también podría ser una buena idea agregarlos a su propia biblioteca "utils", dividiendo dichas funciones en sus componentes principales primero, y manteniendo la función final simplemente como un nido de llamadas a las funciones ahora divididas de los componentes centrales:

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)); }


Desea ajustar cada número en Math.abs() . p.ej

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

imprime "1".

Si quieres evitar escribir las Math. -parte, puede incluir la utilidad matemática estáticamente. Solo escribe

import static java.lang.Math.abs;

junto con sus importaciones, y puede referirse a la función abs() simplemente escribiendo

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


El concepto que está describiendo se llama "valor absoluto" y Java tiene una función llamada Math.abs para hacerlo por usted. O puede evitar la llamada a función y hágalo usted mismo:

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

o

if (number < 0) number = -number;


Estás buscando un valor absoluto, amigo. Math.abs(-5) devuelve 5 ...


La forma más sencilla y verídica de hacer esto es ajustar cada número en una llamada Math.abs (), por lo que debería agregar:

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

con cambios lógicos para reflejar cómo está estructurado su código. Verbose, quizás, pero hace lo que quieres.


Necesitaba el valor absoluto de un largo, y examiné profundamente Math.abs y encontré que si mi argumento es menor que LONG.MIN_VAL que es -9223372036854775808l, entonces la función abs no devolvería un valor absoluto sino solo el valor mínimo. En este caso, si su código está usando este valor de abs más, entonces podría haber un problema.


Prueba esto:

int answer = x * -1;

Con esto, puede convertir un positivo en negativo y un negativo en positivo.

¡Espero eso ayude! ¡Buena suerte!


Si está interesado en la mecánica del complemento a dos, aquí está la forma ineficiente, pero ilustrativa, de bajo nivel que se hace:

private static int makeAbsolute(int number){ if(number >=0){ return number; } else{ return (~number)+1; } }


Solo llame a Math.abs . Por ejemplo:

int x = Math.abs(-5);

Que establecerá x a 5 .


Usa la función abs :

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


no hagas esto

número = (número <0? -número: número);

o

if (number <0) number = -number;

esto será un error cuando ejecute buscar error en su código, lo reportará como RV_NEGATING_RESULT_OF


sin la diversión lib

value = (value*value)/value

con diversión lib:

value=Math.abs(value);


String s = "-1139627840"; BigInteger bg1 = new BigInteger(s); System.out.println(bg1.abs());

Alternativamente:

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


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