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

Sim*_*eep 2 .net constants literals

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

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

Hei*_*nzi 23

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

  • +1这一次我一直在浪费零. (4认同)
  • 和其他评论一样,虽然这是一个笑话,但你要列出*literals*,而不是*常量*. (2认同)

Bob*_*man 13

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

#define BANKOFAMERICA_TARP_AMOUNT 1000000000.0; // One billion dollars
Run Code Online (Sandbox Code Playgroud)


Joh*_*lla 8

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

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

  • 更重要的是要意识到像百万和十亿这样的数字甚至在基数10中都有*最轻微的含义. (2认同)

Ale*_*ort 5

为什么你认为百万和十亿是常见数字?

  • @Si:*你的*应用程序,因此你需要定义*你自己的*常量;) (3认同)

Pie*_*ant 5

没有,

有一些不变的可用,像

  • double.Epsilon
  • Math.PI

但不是百万和十亿.

您可以创建自己的常量

public const int OneMillion = 1000000;
Run Code Online (Sandbox Code Playgroud)

我认为你正在寻找将数字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();
}
Run Code Online (Sandbox Code Playgroud)