.Net是否有常见数字的内置常量,如百万,十亿等?

时间:2009-10-29 15:17:00

标签: .net constants literals

.Net是否有常见数字的内置常量,如百万,十亿等?

编辑:正如所建议的那样,这是出于可读性的原因,而不是写1000000或1000000000.我知道我可以创建自己的,只是想在我这样做之前检查它们是否已经存在。

12 个答案:

答案 0 :(得分:23)

当然,它们被命名为1e6,1e9等......; - )

答案 1 :(得分:13)

我可以看到你的观点,即像1000000000这样的代码中的清单常量可能具有可读性问题“是一亿还是十亿”。但是,我会创建一个适合特定情况的常量而不是通用常量。例如

#define BANKOFAMERICA_TARP_AMOUNT 1000000000.0; // One billion dollars

答案 2 :(得分:8)

没有。通常,常量值最适用于语义超出其值的文字。例如,3.14159是一个文字,但它也是一个广泛重要的数学值,π(虽然是近似值)。

相比之下,像1,000,000这样的数字只是一个字面值,除了它的值之外不一定具有任何一般意义,所以没有多少值得使它成为内置常量。然而,在特定的应用或环境中,它可能很重要 - 也许1,000,000是您的油轮可以容纳的ShippingContainers的最大数量或类似的东西。这就是你使用常数的地方。

答案 3 :(得分:5)

为什么你认为百万和十亿是普通数字?

答案 4 :(得分: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();
}

答案 5 :(得分:3)

即使有这样的常数,“十亿”这个词也意味着不同的东西,无论你是美国人还是欧洲人。

在北美,十亿等于1,000,000,000 = 10 ^ 9;在欧洲,十亿等于1,000,000,000,000 = 10 ^ 12。 (毫安= 10 ^ 9。)

答案 6 :(得分:2)

我没有。

例如,存在适合int或long的最大和最小数字的内置常量,但这些点之间没有任意常量。

答案 7 :(得分:2)

我最喜欢使用的是:

public const float EleventyBillion = 110000000000;

答案 8 :(得分:1)

我不认为我们可以拥有一个美国十亿(十亿)和一个英国(和其他人)十亿(一百万)之间存在差异

Differences in short scale and long scale numbering

答案 9 :(得分:1)

有点诙谐,但没有什么可以阻止你在int上放置扩展方法:

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

为了制作

 int approximatePopulationOfUnitedStates = 300.million();

有效代码......

答案 10 :(得分: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;

我必须承认,我这样做有时只是为了纯粹的可读性(但是只有在类的顶部,而不是专用库)。有时,数字有点像

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

如果你之后多次引用它,它只会使代码更加整洁IMO。还可以让评论更容易,因为在开始时更容易做出简短的评论,以便了解为什么要一直向变量添加一个,而不仅仅是查看随机count + 1代码。

答案 11 :(得分:0)

int million = 1000000;
int billion = 1000000000;

就像5a-1一样,这些都是常量。