¿Tiene .Net alguna constante incorporada para números comunes como millones, billones, etc.?

StackOverflow https://stackoverflow.com/questions/1644468

  •  10-07-2019
  •  | 
  •  

Pregunta

¿Tiene .Net alguna constante incorporada para números comunes como millones, billones, etc.?

EDITAR: como se ha sugerido, esto fue por razones de legibilidad, en lugar de escribir 1000000 o 1000000000. Sé que puedo crear el mío solo quería comprobar que ya no existían antes de hacerlo.

¿Fue útil?

Solución

Puedo ver su punto donde una constante de manifiesto en el código como 1000000000 podría tener un problema de legibilidad '' es que cien millones o mil millones ''. Sin embargo, crearía una constante que se adaptara a la situación particular en lugar de una constante genérica. Por ejemplo

#define BANKOFAMERICA_TARP_AMOUNT 1000000000.0; // One billion dollars

Otros consejos

Claro, se llaman 1e6, 1e9, etc ... ;-)

No. En general, los valores constantes se usan mejor para literales que tienen una semántica fuera de su valor. Por ejemplo, 3.14159 es un literal, pero también es un valor matemático ampliamente importante, p (aunque sea una aproximación).

En comparación, un número como 1,000,000 es simplemente un literal y no necesariamente tiene un significado general que no sea su valor, por lo que no tiene mucho valor convertirlo en una constante incorporada. Sin embargo, en una aplicación o contexto en particular, puede ser importante: quizás 1,000,000 es el número máximo de ShippingContainers que su tanquero puede contener o algo similar. Ahí es donde usarías una constante.

¿Por qué crees que millones y mil millones son números comunes?

No,

Hay algunos disponibles constantemente, como

  • doble.Epsilon
  • Math.PI

Pero no por millones y mil millones.

Puedes crear tus propias constantes

public const int OneMillion = 1000000;

Supongo que está buscando transformar un número como int value = 1000000 en una cadena natural como string value = " 1 millón " .

Eso no existe en .NET de manera predeterminada, pero podría codificarse fácilmente o supongo que podría encontrar dicho código en Google.

Por ejemplo, puede crear un método de extensión en int que transforme el número en una cadena de lenguaje natural humano: (este es un código barato desde la cabeza)

public static string ToNaturalString(this int value)
{
    if (value == 1000000)
        return "1 million";
    else
        return value.ToString();
}

Incluso si hubiera tal constante, la palabra "billón" significa cosas diferentes si eres estadounidense o europeo.

En Norteamérica, mil millones equivalen a 1,000,000,000 = 10 ^ 9; en Europa, mil millones equivalen a 1,000,000,000,000 = 10 ^ 12. (Un milliard = 10 ^ 9.)

Me voy con el no.

Hay constantes integradas para el número más grande y más pequeño que cabe en un int o long, por ejemplo, pero no hay constantes arbitrarias entre esos puntos.

Mi favorito para usar es:

public const float EleventyBillion = 110000000000;

No creo que podamos tener uno porque hay una diferencia entre un billón de dólares (cien mil millones) y un billón británico (¿y otros?) (un millón)

Diferencias en numeración a pequeña y larga escala

Algo irónico, pero no hay nada que le impida poner métodos de extensión en int :

public static int million(this int i)
{
    return i * 1000000;
}

para hacer

 int approximatePopulationOfUnitedStates = 300.million();

código válido ...

podría hacer algo bueno como tener una clase de biblioteca

public class One
{
  public const int Thousand = 1000;
  public const int Million = Thousand * Thousand;
  public const int Billion = Million * Million;
  ...
}

Luego, cuando vas a usarlo, se ve un poco más ordenado

int myNumber = 72 * One.Million;

Debo admitir que hago esto a veces solo por pura legibilidad (sin embargo, solo tengo consts en la parte superior de una clase, no una biblioteca dedicada). A veces es útil que los números tengan algo como

// Add one to account for whatever
int countPlus1 = count + 1;

si hace referencia a él un montón de veces después, solo hace que el código sea un poco más impecable. También hace que los comentarios sean más fáciles, ya que es más fácil poner un comentario breve al principio para comprender por qué está agregando uno a la variable todo el tiempo que solo ver el código aleatorio count + 1 .

int million = 1000000;
int billion = 1000000000;

Al igual que 5 , a y -1 , estas son constantes.

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