.Net ha delle costanti integrate per numeri comuni come milioni, miliardi ecc.?
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.
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)
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.