.Net是否有常见数字的内置常量,如百万,十亿等?
编辑:正如所建议的那样,这是出于可读性的原因,而不是写1000000或1000000000.我知道我可以创建自己的,只是想在我这样做之前检查它们是否已经存在。
答案 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)
没有
有一些常量可用,如
但不是百万和十亿。
您可以创建自己的常量
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)
我不认为我们可以拥有一个美国十亿(十亿)和一个英国(和其他人)十亿(一百万)之间存在差异
答案 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;
就像5
,a
和-1
一样,这些都是常量。