課程
/后端開(kāi)發(fā)
/Java
/Java入門(mén)第一季(IDEA工具)升級(jí)版
最后那個(gè)40/9%5不是應(yīng)該等于40/9嗎,而且這還有小數(shù),不是和前面的int向矛盾了嗎
2020-02-18
源自:Java入門(mén)第一季(IDEA工具)升級(jí)版 3-8
正在回答
int m = 5;
int n = 7;
int x=(m*8/(n+2))%m;
因?yàn)橹耙?guī)定的m和n是int,所以(m*8/(n+2))的結(jié)果也是int也就是4,
假如是這么寫(xiě)double?x=(m*8/(n+2)),結(jié)果就是4.0,
假如是這么寫(xiě)double?x=((double)m*8/(n+2)),結(jié)果就是4.444444444444445
40/9=4.44444444,這個(gè)結(jié)果在對(duì)5取余,得到的還是4.44444,但因?yàn)閤是整型(int),所以不保留小數(shù),也就是4。
1、Java中 數(shù)值運(yùn)算時(shí) /? 你可以理解為 取商;
2、無(wú)論 a/b 結(jié)果時(shí) 4.4....... or? 4.9.......? 都只取整數(shù)部分,不會(huì)按四舍五入 運(yùn)算結(jié)果為int型,并非浮點(diǎn)型,別把????????主觀思維加進(jìn)來(lái);
3、強(qiáng)中轉(zhuǎn)換 一般只有在 賦值 運(yùn)算時(shí) 用,賦值運(yùn)算符 =? 前后數(shù)據(jù)類(lèi)型不一樣時(shí)才用,否則編譯報(bào)錯(cuò),
????代碼中 int x = (m*8/(n+2)%m);? x 的數(shù)據(jù)類(lèi)型為int型,(m*8/9%m) 按優(yōu)先級(jí)應(yīng)從左往右計(jì)算,每一步運(yùn)算結(jié)果和最終結(jié)果都是 int型,和變量 x類(lèi)型一樣,故不需要強(qiáng)制轉(zhuǎn)換。?
慕少1317773
Mr沐陽(yáng) 回復(fù) 慕少1317773
java 和 C 一樣? 用 / 這個(gè)符號(hào)就不是我們通常的除法,用這個(gè) / 只能得到整數(shù)部分,和int定義沒(méi)關(guān)系;
如果你用float定義,那結(jié)果就是4.00也不會(huì)是4.444444
int 取整 后面小數(shù)都去掉的,沒(méi)矛盾
記錯(cuò)了,是4.44444444
這個(gè)取整就是對(duì)的,4.75,但是前面是int啊,int后面沒(méi)有強(qiáng)制賦值的話,不是應(yīng)該是有語(yǔ)病的嗎
老哥,我也是新手,昨晚才開(kāi)始學(xué)的那種新,有興趣加個(gè)好友,一起討論學(xué)習(xí)啊
剛剛我再算了下,是40/9,我懷疑是它題目錯(cuò)了,我也是新手,剛學(xué),互相討論哦
你應(yīng)該是算錯(cuò)了吧,int ?x?=?( m?*?8?/?( n?+?2 ) )?%?m ;m=5;n=7;
這樣算下來(lái),前面是35,不是40,前面的數(shù)算錯(cuò)了,后面就會(huì)出錯(cuò)的哦;原題算下來(lái)的話,就是一個(gè)int類(lèi)型的了,你再試試看哦
WE_Xing
舉報(bào)
0基礎(chǔ)萌新入門(mén)第一課,從Java環(huán)境搭建、工具使用、基礎(chǔ)語(yǔ)法開(kāi)始
3 回答小白求解答
1 回答小白求解答
1 回答小白請(qǐng)求解惑
3 回答求助大神解答小白
3 回答求解釋 解釋
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢(xún)優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2020-11-26
int m = 5;
int n = 7;
int x=(m*8/(n+2))%m;
因?yàn)橹耙?guī)定的m和n是int,所以(m*8/(n+2))的結(jié)果也是int也就是4,
假如是這么寫(xiě)double?x=(m*8/(n+2)),結(jié)果就是4.0,
假如是這么寫(xiě)double?x=((double)m*8/(n+2)),結(jié)果就是4.444444444444445
2020-03-23
40/9=4.44444444,這個(gè)結(jié)果在對(duì)5取余,得到的還是4.44444,但因?yàn)閤是整型(int),所以不保留小數(shù),也就是4。
2020-03-05
1、Java中 數(shù)值運(yùn)算時(shí) /? 你可以理解為 取商;
2、無(wú)論 a/b 結(jié)果時(shí) 4.4....... or? 4.9.......? 都只取整數(shù)部分,不會(huì)按四舍五入 運(yùn)算結(jié)果為int型,并非浮點(diǎn)型,別把????????主觀思維加進(jìn)來(lái);
3、強(qiáng)中轉(zhuǎn)換 一般只有在 賦值 運(yùn)算時(shí) 用,賦值運(yùn)算符 =? 前后數(shù)據(jù)類(lèi)型不一樣時(shí)才用,否則編譯報(bào)錯(cuò),
????代碼中 int x = (m*8/(n+2)%m);? x 的數(shù)據(jù)類(lèi)型為int型,(m*8/9%m) 按優(yōu)先級(jí)應(yīng)從左往右計(jì)算,每一步運(yùn)算結(jié)果和最終結(jié)果都是 int型,和變量 x類(lèi)型一樣,故不需要強(qiáng)制轉(zhuǎn)換。?
2020-02-24
java 和 C 一樣? 用 / 這個(gè)符號(hào)就不是我們通常的除法,用這個(gè) / 只能得到整數(shù)部分,和int定義沒(méi)關(guān)系;
如果你用float定義,那結(jié)果就是4.00也不會(huì)是4.444444
2020-02-22
int 取整 后面小數(shù)都去掉的,沒(méi)矛盾
2020-02-18
記錯(cuò)了,是4.44444444
2020-02-18
這個(gè)取整就是對(duì)的,4.75,但是前面是int啊,int后面沒(méi)有強(qiáng)制賦值的話,不是應(yīng)該是有語(yǔ)病的嗎
2020-02-18
老哥,我也是新手,昨晚才開(kāi)始學(xué)的那種新,有興趣加個(gè)好友,一起討論學(xué)習(xí)啊
2020-02-18
剛剛我再算了下,是40/9,我懷疑是它題目錯(cuò)了,我也是新手,剛學(xué),互相討論哦
2020-02-18
你應(yīng)該是算錯(cuò)了吧,int ?x?=?( m?*?8?/?( n?+?2 ) )?%?m ;m=5;n=7;
這樣算下來(lái),前面是35,不是40,前面的數(shù)算錯(cuò)了,后面就會(huì)出錯(cuò)的哦;原題算下來(lái)的話,就是一個(gè)int類(lèi)型的了,你再試試看哦