133 votos

Convertir un número positivo a negativo en C#

Puedes convertir un número negativo a positivo de la siguiente manera:

int myInt = System.Math.Abs(-5);

¿Existe un método equivalente para hacer que un número positivo sea negativo?

394voto

bryanbcook Puntos 7184

¿Qué tal

myInt = myInt * -1

214voto

Jim W Puntos 3050
int myNegInt = System.Math.Abs(myNumber) * (-1);

Se traduce a:

int myNegInt = System.Math.Abs(miNumero) * (-1);

126voto

JDunkerley Puntos 7237
int negInt = -System.Math.Abs(myInt)

Se mantiene igual ya que no hay cambios en el código HTML.

87voto

Joe White Puntos 32629

De la misma manera en que haces negativo cualquier otra cosa: coloca un signo negativo delante de ella.

var positivo = 6;
var negativo = -positivo;

40voto

Mehrdad Afshari Puntos 204872

Nota para todos los que respondieron con

- Math.Abs(miEntero)

o

0 - Math.Abs(miEntero)

o

Math.Abs(miEntero) * -1

como una forma de mantener los números negativos como negativos y convertir los positivos en negativos.

Este enfoque tiene un único defecto. No funciona para todos los enteros. El rango del tipo Int32 va desde "-231" hasta "231 - 1." Esto significa que hay un número más "negativo". En consecuencia, Math.Abs(int.MinValue) lanza una OverflowException.

La forma correcta es usar declaraciones condicionales:

int neg = n < 0 ? n : -n;

Este enfoque funciona para "todos" los enteros.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X