只見雙最大尺寸雙最大範圍是:-1.79769313486232e308到1.79769313486232e308在.NET
但是當我試圖設置:
double bla = 99999999999999999999;
它說的數量太大。
是真的那麼大嗎? (E308)。
只見雙最大尺寸雙最大範圍是:-1.79769313486232e308到1.79769313486232e308在.NET
但是當我試圖設置:
double bla = 99999999999999999999;
它說的數量太大。
是真的那麼大嗎? (E308)。
您需要將d
添加到數字的末尾以指定它是雙精度型。
double bla = 99999999999999999999d;
沒有d
後綴,它實際上是一個常數整數(或將是,如果它是不出來整數範圍),然後將其轉換爲加倍。
另請注意,由於floating point precision,您返回的數字實際上是1E20
或100000000000000000000
。
如果您確實想要使用該範圍內的整數,則應該使用BigInteger來代替。
至少有一件事 - 99999999999999999999不是雙常數。讓它
99999999999999999999.0
,它應該工作。
http://www.blackwasp.co.uk/CSharpNumericLiterals.aspx
對所有的數字文本的詳細insformation。
是的,他們爲什麼這樣做? – omriman12
@ omriman12注意你會失去精確度。你可以只有15位數字而不會失去精度。 –