java中的除法運算和取模運算解讀
java除法運算和取模運算
A.除法運算
a.含義及其語法
- 除法運算就是被除數(shù)除以除數(shù)的這一過程
- 語法: 被除數(shù)/除數(shù)
- 注意:除數(shù)不能為0,且被除數(shù)和除數(shù)都得是數(shù)字
b.應用場景
- 1.和取模運算一起求出整型數(shù)字的每一位的數(shù)字,可以解決水仙花問題
- 2.已知天數(shù),求這是第幾周(默認第一天為星期一)
c.怎么使用?
c.1被除數(shù)和除數(shù)皆為整型數(shù)據(jù)時
- 如果是整型數(shù)據(jù)進行除法運算,那么得到的結果就是被除數(shù)除以除數(shù)的結果,其結果必然是整型數(shù)據(jù).
- 如果除不盡,會把得到的小數(shù)部分直接抹去,抹去的時候不要考慮四舍五入的規(guī)則
示例代碼:
public class Test {
public static void main(String[] args) {
int a=19;
int b=2;
int c=a/b;
System.out.print("c的結果為: "+c);
}
}示例代碼運行結果
如下圖所示:

c.1被除數(shù)和除數(shù)至少有一個為浮點型數(shù)據(jù)時
在除法運算中,如果里面有浮點型數(shù)據(jù)參與的話,那么結果一定會是浮點類型的數(shù)據(jù),計算數(shù)值的話就按照我們平常小數(shù)和整數(shù)之間的除法計算去進行計算即可。
結果會保留小數(shù)部分.
示例代碼如下:
public class Test {
public static void main(String[] args) {
double a=19;
int b=2;
double c=a/b;
System.out.print("c的結果為: "+c);
}
}示例代碼運行截圖如下所示:

B.取模運算(求余數(shù))
a.含義及其語法
- 取模運算就是被除數(shù)除以除數(shù)后得到的余數(shù)
- 語法: 被除數(shù)%除數(shù)
- 注意:除數(shù)不能為0,且被除數(shù)和除數(shù)都得是數(shù)字
b.應用場景
- 1.和除法運算一起求出整型數(shù)字的每一位的數(shù)字,可以解決水仙花問題
- 2.已知天數(shù),求此時是星期幾(默認第一天為星期一)
c.怎么使用??? c.1取模的核心思路如下所示:
設m為被除數(shù),n為除數(shù)
- 1.若m<n,取模運算結果=余數(shù)=n;
- 2.若m=n,取模運算結果=余數(shù)=0;
- 3.若m>n,取模運算結果=m-n*最多次數(shù);
最多次數(shù)就是m能最多減去幾個n的次數(shù)(這時m不能再減,再減就會小于0了)
c.2 當取模運算兩邊都是整型數(shù)據(jù)時
結果=被除數(shù)-除數(shù)*最多次數(shù),此時結果為整型數(shù)據(jù)
示例代碼:
public class Test {
public static void main(String[] args) {
int a=19;
int b=2;
int c=a%b;
System.out.print("c的結果為: "+c);
}
}示例代碼運行截圖如下所示:

c.3 取模運算兩邊至少有一個為浮點型數(shù)據(jù)時
此時依然還是按照取模的核心思路,該思路不會受到數(shù)據(jù)類型(整型、浮點型)影響
結果=被除數(shù)-除數(shù)*最多次數(shù),此時結果要表示為浮點類型的數(shù)據(jù)
示例代碼如下:
public class Test {
public static void main(String[] args) {
double a=19;
int b=2;
double c=a%b;
System.out.print("c的結果為: "+c);
}
}示例代碼運行截圖
如下所示
:
取模運算 整數(shù)除運算 +運算
如果對負數(shù)取模,可以把模數(shù)負號忽略不記,如:5%-2=1。但被模數(shù)是負數(shù)則不可忽略。此外,取模運算的結果不一定總是整數(shù)。
對于除號“/”,它的整數(shù)除和小數(shù)除是有區(qū)別的:整數(shù)之間做除法時,只保留整數(shù)部分而舍棄小數(shù)部分。
例如:
int x=3510;x=x/1000*1000; x的結果是?3000 因為整數(shù)除的時候是被作為一個int類型的數(shù)據(jù),3500/1000 = 3
“+”除字符串相加功能外,還能把非字符串轉換成字符串.
例如:System.out.println("5+5="+5+5); //打印結果是?
l以下二者的區(qū)別:
System.out.println('*' + '\t' +'*');
System.out.println("*" + '\t' +'*');上面的char會直接計算unicode值。因為char類型數(shù)據(jù)運算前會轉換成int類型進行計算。
for(int i = 100 ; i <= 999 ;i++){
int n1 = i%10; //對10取模得到一個個位數(shù)。因為任何一個大于10的數(shù)對10取模得到就是個位數(shù)。比如34%10 = 4 ?商為3 余數(shù)是4
int n2 = i/10%10; ? //首先除以10 丟失個位數(shù)精度。
int n3 = i/100; ? ? ?//除以100丟失十位數(shù)和個位數(shù)精度。
if((n1*n1*n1 +n2*n2*n2 +n3*n3*n3) == i){
System.out.println("i = " + i + ", n1 = " + n1 + ", n2 = " + n2 + " , n3 = " +n3);
System.out.println(i);
}
}
}總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Mybatis-Plus updateById方法更新無效及空值處理過程
MyBatis-Plus的updateById默認不更新null值以防止誤操作,可通過UpdateWrapper/LambdaUpdateWrapper顯式設置,或全局配置、注解@TableField允許字段更新為空,需根據(jù)業(yè)務場景選擇合適方式2025-07-07
mybatis動態(tài)sql之Map參數(shù)的講解
今天小編就為大家分享一篇關于mybatis動態(tài)sql之Map參數(shù)的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03
javabean servlet jsp實現(xiàn)分頁功能代碼解析
這篇文章主要為大家詳細解析了javabean servlet jsp實現(xiàn)分頁功能代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09
SpringCloud?Gateway中GatewayFilterChain執(zhí)行流程詳解
Spring?Cloud?Gateway旨在為微服務架構提供一種簡單有效的、統(tǒng)一的?API?路由管理方式。Spring?Cloud?Gateway?作為?Spring?Cloud?生態(tài)系中的網(wǎng)關,它不僅提供統(tǒng)一的路由方式,并且基于?Filter?鏈的方式提供了網(wǎng)關基本的功能,例如:安全、監(jiān)控/埋點和限流等2022-10-10
SpringBoot根據(jù)注解動態(tài)執(zhí)行類中的方法實現(xiàn)
本文主要介紹了SpringBoot根據(jù)注解動態(tài)執(zhí)行類中的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-08-08

