亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

盡管變量的類型被聲明為雙精度型,為什么 java 會給出一個 int 太大的錯誤?

盡管變量的類型被聲明為雙精度型,為什么 java 會給出一個 int 太大的錯誤?

九州編程 2021-10-27 17:07:30
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,因此您需要為您希望該文字具有的類型添加后綴,例如dfor double

 number >= 10000000000D


查看完整回答
反對 回復 2021-10-27
?
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!");


查看完整回答
反對 回復 2021-10-27
?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

答案應該是


因為10000000000是int并且它不能被存儲,因為它大于2,147,483,647,這就是為什么你得到的錯誤整數太大


要解決問題,請Double通過附加d


if (number >= 10000000000d) //***** {

    System.out.print("The number is greater than 10 billion!");

}


查看完整回答
反對 回復 2021-10-27
  • 3 回答
  • 0 關注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號