Does .Net ter qualquer construído em constantes para números comuns como milhões, bilhões etc?

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

  •  10-07-2019
  •  | 
  •  

Pergunta

O .Net ter qualquer construído em constantes para números comuns como milhões, bilhões etc?

EDIT: Como tem sido sugerido isso foi por razões de legibilidade, ao invés de escrever 1000000 ou 1000000000. eu sei que posso criar meu próprio só queria verificar se eles já não existisse antes eu fiz isso

.
Foi útil?

Solução

Eu posso ver seu ponto onde uma constante manifesto no código como 1000000000 pode ter um problema de legibilidade "é que cem milhões ou bilhões". No entanto, eu criar uma constante que se adequava à situação particular, em vez de uma constante genérica. Por exemplo

#define BANKOFAMERICA_TARP_AMOUNT 1000000000.0; // One billion dollars

Outras dicas

Claro, eles são nomeados 1E6, 1E9, etc ...; -)

No. Em geral, os valores constantes são mais utilizados para literais que têm semântica fora de seu valor. Por exemplo, 3,14159 é um literal, mas também é um valor matemático amplamente importante, p (embora uma aproximação).

Em comparação, um número como 1.000.000 é simplesmente um literal e não necessariamente tem qualquer significado geral que não seja o seu valor, por isso não há muito valor em tornando-se um built-in constante. Em um aplicativo ou contexto particular, no entanto, pode ser importante - talvez um milhão é o número máximo de ShippingContainers seu navio-tanque pode armazenar ou algo similar. É aí que você usaria uma constante.

Por que você acha milhões e bilhões são números comuns?

Não,

Há alguns avallable constante, como

  • double.Epsilon
  • Math.PI

Mas não por milhões e bilhões.

Você pode criar suas próprias constantes

public const int OneMillion = 1000000;

Eu presumo que você está olhando para transformar um número como int value = 1000000 em uma seqüência natural como string value = "1 million".

Isto não existem no .NET por padrão, mas pode ser codificado facilmente ou eu presumo que você poderia encontrar esse código no Google.

Por exemplo, você poderia criar um método de extensão em int que transformam o número em uma string de linguagem natural humana: (este código é barato de fora da cabeça)

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

Mesmo que houvesse tais constante, a palavra coisas "bilhões" de meios diferentes Se você está americanos ou europeus.

Na América do Norte, um bilhão é igual a 1.000 milhões = 10 ^ 9; na Europa, de um bilhão de igual 1.000.000.000.000 = 10 ^ 12. (Um milliard = 10 ^ 9.)

Vou sem.

Não são construídos em constantes para o número maior e menor que vai caber em um int ou longo prazo, por exemplo, mas não constantes arbitrárias entre esses pontos.

O meu favorito para uso é:

public const float EleventyBillion = 110000000000;

Eu não acho que poderia ter um com o fundamento de que há uma diferença entre um US bilhões (cem mil milhões) e um britânico (e outros?) Billion (um milhão de milhões)

Diferenças na escala curta e longa escala numeração

Um pouco tongue-in-cheek, mas não há nada que impeça você de colocar os métodos de extensão em int:

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

a fim de fazer

 int approximatePopulationOfUnitedStates = 300.million();

código válido ...

poderia fazer algo puro como ter uma classe biblioteca

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

Então quando você vai usá-lo parece um pouco mais puro

int myNumber = 72 * One.Million;

Eu devo admitir, eu faço isso, por vezes, apenas para puramente legibilidade (no entanto, só tem consts no topo de uma classe, não uma biblioteca dedicada). Às vezes é útil para números para ter algo parecido

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

Se você está fazendo referência a ele um monte de vezes depois, ele só faz o código que pouco mais limpo IMO. Também torna mais fácil comentando, como é mais fácil de colocar um breve comentário no início de entender por que você está adicionando um para a variável o tempo todo do que apenas ver o código count + 1 aleatória.

Sim

int million = 1000000;
int billion = 1000000000;

Assim como 5, a e -1, estes são constantes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top