我看到双倍最大尺寸是:-1.79769313486232e308到1.79769313486232e308
但是当我尝试设置时:
double bla = 99999999999999999999;
它说这个数字太大了。
双倍真的那么大吗? (E308)。
答案 0 :(得分:6)
您需要将d
添加到数字的末尾,以指定它是双精度。
double bla = 99999999999999999999d;
如果没有d
后缀,它实际上是一个常量整数(或者,如果它不在整数范围之外),然后将其转换为double。
另请注意,由于floating point precision,您获得的号码实际上是1E20
或100000000000000000000
。
如果您确实想要使用该范围内的整数,则应该使用BigInteger代替。
答案 1 :(得分:1)
至少有一件事 - 99999999999999999999不是双常数。做到这一点
99999999999999999999.0
它应该有用。
http://www.blackwasp.co.uk/CSharpNumericLiterals.aspx
有更多关于所有数字文字的信息。