.Netには、100万、10億などの一般的な数値の組み込み定数がありますか?

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

  •  10-07-2019
  •  | 
  •  

質問

.Netには、100万、10億などの一般的な数値の組み込み定数がありますか?

編集:提案されているように、これは1000000や1000000000を書くのではなく、読みやすさの理由によるものです。

役に立ちましたか?

解決

1000000000のようなコードのマニフェスト定数が「1億または10億」という読みやすさの問題を抱えている可能性があるという点を見ることができます。ただし、一般的な定数ではなく、特定の状況に適した定数を作成します。例

#define BANKOFAMERICA_TARP_AMOUNT 1000000000.0; // One billion dollars

他のヒント

もちろん、それらは1e6、1e9などと呼ばれます;-)

いいえ。一般に、定数値は、値の範囲外のセマンティクスを持つリテラルに最もよく使用されます。たとえば、3.14159はリテラルですが、広く重要な数学値π(近似ではありますが)です。

比較すると、1,000,000のような数値は単なるリテラルであり、必ずしもその値以外の一般的な意味を持っているわけではないため、組み込み定数にすることはあまり意味がありません。ただし、特定のアプリケーションまたはコンテキストでは重要です。タンカーが保持できる ShippingContainers の最大数はおそらく1,000,000です。そこで定数を使用します。

なぜ百万と十億が一般的な数字だと思いますか?

いいえ、

次のようないくつかの定数があります

  • double.Epsilon
  • Math.PI

しかし、百万と十億のためではありません。

独自の定数を作成できます

public const int OneMillion = 1000000;

int value = 1000000 のような数値を string value =" 1 million" のような自然な文字列に変換しようとしていると思います。

.NETにはデフォルトでは存在しませんが、簡単にコーディングできます。または、Googleでそのようなコードを見つけることができると思います。

たとえば、数値を人間の自然言語文字列に変換する int の拡張メソッドを作成できます:(これは安価なコードです)

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

このような定数があったとしても、「億」という言葉はあなたがアメリカ人であろうとヨーロッパ人であろうと異なることを意味します。

北米では、10億は1,000,000,000 = 10 ^ 9に相当します。ヨーロッパでは、10億は1,000,000,000,000 = 10 ^ 12に相当します。 (ミリアルド= 10 ^ 9。)

いいえで行きます。

たとえば、intまたはlongに収まる最大数と最小数の定数が組み込まれていますが、それらのポイント間に任意の定数はありません。

使用するお気に入りは次のとおりです。

public const float EleventyBillion = 110000000000;

10億(10億)と英国(および他の?)10億(100万)の違いがあるという理由で、私たちはそれを持っているとは思いません。

ショートスケールとロングスケールの番号付けの違い

ややこしいが、拡張メソッドを int に置くことを止めるものは何もない:

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

作成するため

 int approximatePopulationOfUnitedStates = 300.million();

有効なコード...

ライブラリクラスがあるようなきちんとしたことができます

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

使用すると、少し見栄えがよくなります

int myNumber = 72 * One.Million;

認めなければならないのは、純粋に読みやすくするためだけにこれを行うことです(ただし、専用ライブラリーではなく、クラスの最上位にconstがあるだけです)。数字が次のようなものを持っていると便利な場合があります

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

後で何度もそれを参照する場合、それはコードをほんのすてきなIMOにするだけです。また、ランダムな count + 1 コードを表示するよりも、変数に常に1つ追加する理由を理解するために、最初に短いコメントを入力する方が簡単なので、コメントも簡単になります。

はい

int million = 1000000;
int billion = 1000000000;

5 a 、および -1 と同様に、これらは定数です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top