Hat .Net haben jede wie Millionen in Konstanten für gemeinsame Stückzahlen gebaut, Milliarden etc?

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

  •  10-07-2019
  •  | 
  •  

Frage

hat .Net beliebige Konstanten für gemeinsame Zahlen gebaut wie Millionen, Milliarden etc?

EDIT: Wie wurde vorgeschlagen, dies aus Gründen der Lesbarkeit Gründe war, anstatt 1000000 oder 1000000000 Schreiben weiß ich, dass ich meine eigene wollte erstellen kann nur prüfen, ob sie den Ball hielt existieren bereits, bevor ich so tat

.
War es hilfreich?

Lösung

Ich kann Ihren Punkt sehen, wo eine offensichtliche Konstante in Code wie 1000000000 könnte ein Ablesbarkeit Problem „ist, dass hundert Millionen oder eine Milliarde“. Allerdings würde ich eine Konstante erstellen, die auf die besondere Situation eher als eine allgemeine Konstante geeignet. Zum Beispiel

#define BANKOFAMERICA_TARP_AMOUNT 1000000000.0; // One billion dollars

Andere Tipps

Sicher, sie sind benannt 1e6, 1e9, etc ...; -)

Nein. Im Allgemeinen werden die besten konstante Werte für Literale verwendet, die Semantik außerhalb ihres Wertes haben. Zum Beispiel ist 3,14159 ein wörtliche, aber es ist auch ein im Großen und Ganzen wichtiger mathematischer Wert, π (wenn auch eine Näherung).

Zum Vergleich: eine Zahl wie 1000000 ist einfach ein wörtliche und nicht notwendigerweise eine allgemeine andere Bedeutung als sein Wert, so gibt es nicht viel wert es ein integrierte Konstante bei der Herstellung. In einer bestimmten Anwendung oder Kontext, jedoch könnte es wichtig sein - vielleicht ist 1.000.000 die maximale Anzahl von ShippingContainers können Ihre Tanker halten oder etwas ähnliches. Das ist, wo Sie eine Konstante verwenden würden.

Warum denken Sie, Millionen und Milliarden sind gemeinsame Zahlen?

Nein,

Es gibt ein paar konstanten avallable, wie

  • double.Epsilon
  • Math.PI

Aber nicht für Millionen und Milliarden.

Sie können Ihre eigenen Konstanten erstellen

public const int OneMillion = 1000000;

Ich nehme an, Sie suchen eine Zahl wie int value = 1000000 in eine natürliche Zeichenfolge wie string value = "1 million" zu verwandeln.

Das gibt es nicht in .NET standardmäßig, aber es könnte leicht codiert werden, oder ich nehme an, Sie solchen Code auf Google finden können.

Zum Beispiel könnten Sie eine Erweiterungsmethode auf int erstellen, die die Zahl in eine menschliche natürlichen Sprache String umwandeln: (dies ist billig Code aus aus dem Kopf)

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

Auch wenn es eine solche Konstante bedeutet das Wort „Milliarde“ verschiedene Dinge, ob Sie amerikanische oder europäische sind.

In Nordamerika eine Milliarde entspricht 1000000000 = 10 ^ 9; in Europa, gleich eine Milliarde 1.000.000.000.000 = 10 ^ 12. (A milliard = 10 ^ 9.)

Ich bin mit keinem Weg.

Es gibt in Konstanten für die größte und kleinste Zahl gebaut, die in einem int oder lang, zum Beispiel, aber keine willkürlichen Konstanten zwischen diesen Punkten passen.

Meine Lieblinge zu verwenden sind:

public const float EleventyBillion = 110000000000;

Ich glaube nicht, dass wir einen auf dem Gelände haben könnten, dass es ein Unterschied zwischen einem US-Milliarden (hunderttausend Millionen) und einem britischen (und andere?) Milliarden (eine Million Millionen)

Unterschiede in kurzer Mensur und lange Skala Nummerierung

Etwas tongue-in-cheek, aber es gibt nichts hindert Sie Erweiterungsmethoden auf int setzen:

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

zu machen, um

 int approximatePopulationOfUnitedStates = 300.million();

gültige Code ...

ordentlich etwas tun könnte, wie eine Bibliothek Klasse

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

Dann, wenn du gehst, es zu benutzen es sieht ein bisschen saubere

int myNumber = 72 * One.Million;

Ich muss zugeben, ich dies manchmal nur für rein Lesbarkeit (allerdings haben nur consts an der Spitze einer Klasse, nicht eine spezielle Bibliothek). Manchmal ist es nützlich für die Zahlen wie etwas zu haben,

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

, wenn Sie es einen Haufen mal danach verweisen, macht es nur Code ein bisschen ordentlicheres IMO. Auch macht kommentieren einfacher, da es einfacher ist, zu Beginn einen kurzen Kommentar zu setzen, um zu verstehen, warum Sie ein in die Variable die ganze Zeit das Hinzufügen als nur zufällige count + 1 Code.

Ja

int million = 1000000;
int billion = 1000000000;

Wie 5, a und -1, diese Konstanten sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top