2

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

編集: 示唆されているように、これは 1000000 または 1000000000 を書くのではなく、読みやすさの理由によるものでした。自分で作成する前に、それらがまだ存在しないことを確認したかっただけです。

4

12 に答える 12

23

確かに、それらは1e6、1e9などの名前が付けられています... ;-)

于 2009-10-29T15:22:47.617 に答える
13

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

#define BANKOFAMERICA_TARP_AMOUNT 1000000000.0; // One billion dollars
于 2009-10-29T15:25:17.730 に答える
8

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

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

于 2009-10-29T15:24:00.983 に答える
5

いいえ、

のように、いくつかの定数が利用可能です

  • 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();
}
于 2009-10-29T15:20:37.693 に答える
5

100万と10億が普通の数字だと思うのはなぜですか?

于 2009-10-29T15:18:46.777 に答える
3

そんな定数があったとしても、「billion」という言葉は、アメリカ人かヨーロッパ人かで意味が異なります。

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

于 2009-10-29T15:28:45.153 に答える
2

私はノーで行きます。

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

于 2009-10-29T15:18:40.260 に答える
2

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

public const float EleventyBillion = 110000000000;
于 2009-10-29T15:31:05.960 に答える
1

ライブラリクラスのような素敵なことをすることができます

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また、ランダムなコードを見るよりも、最初に短いコメントを付けて変数に常に追加している理由を理解する方が簡単であるため、コメントも簡単になります。

于 2009-10-30T11:54:47.390 に答える
1

米国の 10 億ドル (10 億ドル) と英国の 10 億ドル (100 万ドル) の間に違いがあるという理由で、10 億ドルを持つことはできないと思います。

ショートスケールとロングスケールのナンバリングの違い

于 2009-10-29T15:30:46.553 に答える
1

やや冗談ですが、拡張メソッドを配置することを止めるものは何もありませんint:

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

作るために

 int approximatePopulationOfUnitedStates = 300.million();

有効なコード...

于 2009-10-29T15:43:02.410 に答える
0

はい

int million = 1000000;
int billion = 1000000000;

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

于 2009-10-29T15:23:24.893 に答える