不。净有任何建立在常数为共同的数字喜欢万亿美元等?
题
不。净有任何建立在常数为共同的数字喜欢万亿美元等?
编辑:正如已经建议的,这是为便于阅读,原因,而不是编写1000000或1000000000.我知道我可以创建自己只是想到检查,他们没有已经存在之前,我这样做。
解决方案
我可以看到你的观点,如1000000000这样的代码中的清单常量可能存在可读性问题<!>“是一亿或十亿”!但是,我会创建一个适合特定情况的常量而不是通用常量。例如
#define BANKOFAMERICA_TARP_AMOUNT 1000000000.0; // One billion dollars
其他提示
当然,它们被命名为1e6,1e9等......; - )
没有。通常,常量值最适用于语义超出其值的文字。例如,3.14159是一个文字,但它也是一个广泛重要的数学值,<!>#960; (尽管是近似值)。
相比之下,像1,000,000这样的数字只是一个字面值,除了它的值之外不一定具有任何一般意义,所以没有多少值得使它成为内置常量。然而,在特定的应用或环境中,它可能很重要 - 也许1,000,000是您的油轮可以容纳的最大数量ShippingContainers
或类似的东西。这就是你使用常数的地方。
为什么你认为百万和十亿是普通数字?
没有,
有几个恒定avallable样
- 一倍。Epsilon
- 数学。PI
但不是为万亿美元。
你可以创建自己的常量
public const int OneMillion = 1000000;
我想你是想要改变一些像 int value = 1000000
到一个自然的字符串 string value = "1 million"
.
不存在的。净默认,但它可能是被编码很容易或者我想你可以找到这样的代码。
例如,您可以创建一个扩展方法上的 int
换数人类的自然语言string: (这是廉价码从断头)
public static string ToNaturalString(this int value)
{
if (value == 1000000)
return "1 million";
else
return value.ToString();
}
即使有这样的常数,单词<!>“十亿”!无论你是美国人还是欧洲人,都意味着不同的东西。
在北美,十亿等于1,000,000,000 = 10 ^ 9;在欧洲,十亿等于1,000,000,000,000 = 10 ^ 12。 (毫安= 10 ^ 9。)
我没有。
例如,存在适合int或long的最大和最小数字的内置常量,但这些点之间没有任意常量。
我最喜欢使用的是:
public const float EleventyBillion = 110000000000;
我不认为我们可以拥有一个美国十亿(十亿)和一个英国(和其他人)十亿(一百万)之间存在差异
有点诙谐,但没有什么可以阻止你在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;
我必须承认,我这样做有时只是为了纯粹的可读性(但是只有在类的顶部,而不是专用库)。有时,数字有点像
// Add one to account for whatever
int countPlus1 = count + 1;
如果你之后多次引用它,它只会使代码更加整洁IMO。还可以使评论更容易,因为更容易在开头写一个简短的评论来理解为什么你一直在向变量添加一个,而不仅仅是看随机的count + 1
代码。
是
int million = 1000000;
int billion = 1000000000;
就像5
,a
和-1
一样,这些都是常量。