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