Pregunta

¿Cómo se obtiene el valor absoluto de un número en vb.net?

¿Hay una función incorporada?Sé que puedo simplemente codificar una función yo mismo, pero primero quiero saber si ya existe una.Parece tan simple que probablemente podría hacerlo en tres líneas, así que me sorprendería si no hubiera una...

¡Gracias!

¿Fue útil?

Solución

Matemáticas.Abs( val )

Enlace MSDN

Otros consejos

A riesgo de ser rechazado, es posible que desee escribir su propio método de valor absoluto, dependiendo de para qué lo esté usando.El siguiente fragmento de código (lo siento, está en C#, pero se aplica el mismo principio):

short i = -32768;
int iAbs = Math.Abs(i);

felizmente se compilará, pero cuando se ejecute, la segunda línea lanzará una explicación de OverflowException con el útil mensaje "Negando el valor mínimo de un número de complemento TWOS no es válido". En este caso, debido a que yo es tipo corto, el compilador elige la sobrecarga de matemáticas. Este problema al hacer que IBAB sea un int.

Este fragmento:

short i = -32768;
int iAbs = Math.Abs((int)i);

se compilará y ejecutará sin excepción, pero es un poco complicado codificar de esta manera.En mi opinión, este es un error muy engañoso porque rara vez se encuentra en el mundo real (ya que solo hay un valor para cada tipo que generará esta excepción).Desafortunadamente, me encuentro con este error cada vez que uso Math.Abs ​​para normalizar datos de audio (que generalmente es una matriz corta []), por lo que me he acostumbrado a escribir mi propio contenedor alrededor de Math.Abs ​​que maneja todos los esto para mí y solo devuelve un doble:

public double AbsThatDoesntSuck(short value)
{
    return Math.Abs((double)value);
}

con sobrecargas para cualquier otro tipo que necesite manejar.Entiendo por qué Math.Abs ​​fue escrito para comportarse de esta manera, pero definitivamente puede morder el trasero de quienes no se dan cuenta.

La función es Math.Abs

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top