Java 為我的代碼的相應行提供了整數太大的錯誤消息,我將在代碼的相應段中用 ***** 表示:...if (input.hasNextDouble()) { double number = input.nextDouble(); if (number >= 10000000000) //***** { System.out.print("The number is greater than 10 billion!"); }}...我認為double類型可以記錄大約15個十進制數字。你能告訴我這是怎么回事嗎?
3 回答

森林海
TA貢獻2011條經驗 獲得超2個贊
Java 抱怨源代碼中的實際數字,即整數文字,而不是您為其選擇的存儲位置(這將需要自動轉換)。由于該語言說任何無后綴的數字都被解釋為int
,因此您需要為您希望該文字具有的類型添加后綴,例如d
for double
:
number >= 10000000000D

UYOU
TA貢獻1878條經驗 獲得超4個贊
您將 int 與 double 進行比較的事實不會改變可接受的 int 值。
如果您將數字設為兩倍,則可能會更清楚。
if (number > 1e10) {
System.out.print("The number is greater than 10 billion!");
順便說一句,>如果消息“大于”,我會使用,否則我會
if (number >= 1e10) {
System.out.print("The number is greater than, or equal to 10 billion!");

守著星空守著你
TA貢獻1799條經驗 獲得超8個贊
答案應該是
因為10000000000是int并且它不能被存儲,因為它大于2,147,483,647,這就是為什么你得到的錯誤整數太大
要解決問題,請Double通過附加d
if (number >= 10000000000d) //***** {
System.out.print("The number is greater than 10 billion!");
}
添加回答
舉報
0/150
提交
取消