Domanda

.Net ha delle costanti integrate per numeri comuni come milioni, miliardi ecc.

EDIT: come è stato suggerito, questo è stato per ragioni di leggibilità, piuttosto che scrivere 1000000 o 1000000000. So di poter creare il mio, volevo solo verificare che non esistessero già prima di farlo.

È stato utile?

Soluzione

Vedo il tuo punto in cui una costante manifest in codice come 1000000000 potrebbe avere un problema di leggibilità "è che cento milioni o un miliardo". Tuttavia, creerei una costante adatta alla situazione particolare piuttosto che una costante generica. Ad esempio

#define BANKOFAMERICA_TARP_AMOUNT 1000000000.0; // One billion dollars

Altri suggerimenti

Certo, sono chiamati 1e6, 1e9, ecc ... ;-)

No. In generale, i valori costanti sono meglio utilizzati per i letterali che hanno una semantica al di fuori del loro valore. Ad esempio, 3.14159 è un valore letterale, ma è anche un valore matematico di grande importanza, p (sebbene un'approssimazione).

In confronto, un numero come 1.000.000 è semplicemente un valore letterale e non ha necessariamente un significato generale diverso dal suo valore, quindi non ha molto valore nel renderlo una costante incorporata. In una particolare applicazione o contesto, tuttavia, potrebbe essere importante - forse 1.000.000 è il numero massimo di ShippingContainers che la tua nave cisterna può contenere o qualcosa di simile. Ecco dove useresti una costante.

Perché pensi che milioni e miliardi siano numeri comuni?

No,

Ci sono alcune disponibili costanti, come

  • double.Epsilon
  • Math.PI

Ma non per milioni e miliardi.

Puoi creare le tue costanti

public const int OneMillion = 1000000;

Presumo che tu stia cercando di trasformare un numero come int value = 1000000 in una stringa naturale come string value = " 1 milione " .

Che non esiste in .NET per impostazione predefinita, ma potrebbe essere facilmente codificato o suppongo che potresti trovare tale codice su Google.

Ad esempio, potresti creare un metodo di estensione su int che trasforma il numero in una stringa di linguaggio naturale umano: (questo è un codice economico dalla testa)

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

Anche se ci fosse una tale costante, la parola "miliardi" significa cose diverse che tu sia americano o europeo.

In Nord America, un miliardo equivale a 1.000.000.000 = 10 ^ 9; in Europa, un miliardo equivale a 1.000.000.000.000 = 10 ^ 12. (Un miliardo = 10 ^ 9.)

Vado con il no.

Esistono costanti incorporate per il numero più grande e più piccolo che si adatteranno in un int o long, ad esempio, ma nessuna costante arbitraria tra questi punti.

Il mio preferito da usare è:

public const float EleventyBillion = 110000000000;

Non credo che potremmo averne uno sulla base del fatto che esiste una differenza tra un miliardo di dollari (centomila milioni) e un britannico (e altri?) miliardi (un milione di milioni)

Differenze nella numerazione a breve e lunga scala

Un po 'ironico, ma non c'è niente che ti impedisce di mettere i metodi di estensione su int :

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

per creare

 int approximatePopulationOfUnitedStates = 300.million();

codice valido ...

potrebbe fare qualcosa di pulito come avere una classe di libreria

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

Quindi quando vai a usarlo sembra un po 'più ordinato

int myNumber = 72 * One.Million;

Devo ammetterlo, a volte lo faccio solo per pura leggibilità (tuttavia ho solo i vertici di una classe, non una biblioteca dedicata). A volte è utile che i numeri abbiano qualcosa come

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

se lo si fa più volte riferimento, rende il codice IMO un po 'più ordinato. Semplifica anche i commenti, in quanto è più semplice inserire un breve commento all'inizio per capire perché ne stai aggiungendo uno alla variabile in ogni momento rispetto alla semplice visualizzazione del conteggio + 1 casuale.

Si

int million = 1000000;
int billion = 1000000000;

Proprio come 5 , a e -1 , queste sono costanti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top