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

為了賬號安全,請及時綁定郵箱和手機立即綁定

int換成double結果為什么不是4.4444而是4.0???

int m = 5;

int n = 7;

double x = (m*8/(n+2))%m;

為什么運行結果不是:4.44444?? 而是:4.0???

正在回答

6 回答

4.444是(m*8/(n+2))這個式子算出來的,%是指求余的算術運算符,而4.444%m也就是說4.444除以5后所取的余數,余數只有整數,同時你前面是用了double類型,所以顯示是4.0。

0 回復 有任何疑惑可以回復我~

我的問題就錯著呢,剛發現錯誤,算錯了

0 回復 有任何疑惑可以回復我~
  • 前面的亂來。。。取余可以取浮點型,還有整除是什么鬼。。。

  • m,n都是int,返回int類型,結果相當于舍掉小數點后面是4,4賦值給double類型的x,自動轉換成4.0。。

  • (byte char short)這三個運算返回int型,?int<long< float<double 這幾個運算結果是往后看。。。

0 回復 有任何疑惑可以回復我~
#1

誰搶了我的好奇寶寶

package com.imooc; public class HelloWorld { public static void main(String[] args) { double x=40/9+0.0; System.out.println(x); } } 就這樣也是4.0 還是不明白誒
2017-10-30 回復 有任何疑惑可以回復我~
#2

充電_ 回復 誰搶了我的好奇寶寶

40/9先運算得4, 40/(9+0.0)就是4.444....
2017-11-19 回復 有任何疑惑可以回復我~

因為類型不同,int類型相加,默認結果的類型也是int。所以從int轉換成double就會出現這樣的結果。

0 回復 有任何疑惑可以回復我~

%是整除

0 回復 有任何疑惑可以回復我~

double 類型的是浮點型的,但是取余取得的是整數類型。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

int換成double結果為什么不是4.4444而是4.0???

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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