Est-ce que .Net a des constantes intégrées pour les nombres communs comme des millions, des milliards, etc.?

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

  •  10-07-2019
  •  | 
  •  

Question

Est-ce que .Net a des constantes intégrées pour les nombres communs comme million, milliard, etc.?

EDIT: Comme cela a été suggéré, c'était pour des raisons de lisibilité, plutôt que d'écrire 1000000 ou 1000000000. Je sais que je peux créer le mien, je voulais juste vérifier qu'ils n'existaient pas avant moi.

Était-ce utile?

La solution

Je peux comprendre votre point de vue où une constante de code dans le code, telle que 1000000000, pourrait avoir un problème de lisibilité "est cent millions ou un milliard". Cependant, je créerais une constante qui conviendrait à la situation particulière plutôt qu'une constante générique. Par exemple

#define BANKOFAMERICA_TARP_AMOUNT 1000000000.0; // One billion dollars

Autres conseils

Bien sûr, ils sont nommés 1e6, 1e9, etc ...; -)

Non. En général, les valeurs constantes sont mieux utilisées pour les littéraux qui ont une sémantique en dehors de leur valeur. Par exemple, 3.14159 est un littéral, mais c’est aussi une valeur mathématique très importante, p (bien qu’une approximation).

À titre de comparaison, un nombre de 1 000 000 n’est qu’un littéral et n’a pas nécessairement de signification générale autre que sa valeur. Il n’est donc pas très utile d’en faire une constante intégrée. Toutefois, dans une application ou un contexte particulier, cela peut être important - 1 000 000 est peut-être le nombre maximal de ShippingContainers que votre pétrolier peut contenir ou quelque chose de similaire. C’est là que vous utiliseriez une constante.

Pourquoi pensez-vous que millions et milliards sont des nombres communs?

Non,

Il y a quelques constantes disponibles, comme

  • double.Epsilon
  • Math.PI

Mais pas pour des millions et des milliards.

Vous pouvez créer vos propres constantes

public const int OneMillion = 1000000;

Je suppose que vous souhaitez transformer un nombre tel que int value = 1000000 en une chaîne naturelle telle que string value = "1 million" .

Cela n'existe pas par défaut dans .NET, mais il pourrait être codé facilement ou je suppose que vous pourriez trouver un tel code sur Google.

Par exemple, vous pouvez créer une méthode d’extension sur int qui transforme le nombre en chaîne en langage naturel: (il s’agit d’un code peu coûteux)

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

Même s’il existait une telle constante, le mot "milliards" signifie différentes choses, que vous soyez américain ou européen.

En Amérique du Nord, un milliard est égal à 1 000 000 000 = 10 ^ 9; en Europe, un milliard équivaut à 1 000 000 000 000 = 10 ^ 12. (Un milliard = 10 ^ 9.)

Je vais sans.

Il existe par exemple des constantes intégrées pour le nombre le plus grand et le plus petit pouvant tenir dans un entier ou long, mais pas de constantes arbitraires entre ces points.

Mon favori à utiliser est:

public const float EleventyBillion = 110000000000;

Je ne pense pas que nous pourrions en avoir un au motif qu’il existe une différence entre un milliard de dollars américains (cent milliards) et un milliard (et d’autres?) milliards (un million)

Différences dans la numérotation à courte et à longue échelles

Un peu ironique, mais rien ne vous empêche de mettre des méthodes d'extension sur int :

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

afin de faire

 int approximatePopulationOfUnitedStates = 300.million();

code valide ...

pourrait faire quelque chose de bien comme avoir une classe de bibliothèque

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

Ensuite, quand vous allez l'utiliser, cela a l'air un peu plus net

int myNumber = 72 * One.Million;

Je dois admettre que je le fais parfois uniquement pour des raisons de lisibilité (cependant, les consts sont au sommet d'une classe, pas une bibliothèque dédiée). Il est parfois utile que les nombres aient quelque chose comme

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

si vous le référencez beaucoup de fois par la suite, cela rend le code un peu plus simple, IMO. Cela facilite également les commentaires, car il est plus facile de mettre un court commentaire au début pour comprendre pourquoi vous en ajoutez constamment à la variable plutôt que de simplement voir un code count + 1 aléatoire.

Oui

int million = 1000000;
int billion = 1000000000;

Tout comme 5 , a et -1 , il s'agit de constantes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top