Java中 % 與Math.floorMod() 區(qū)別詳解
%為取余(rem),Math.floorMod()為取模(mod)
取余取模有什么區(qū)別呢?
對于整型數(shù)a,b來說,取模運算或者取余運算的方法都是:
1.求 整數(shù)商: c = a/b;
2.計算模或者余數(shù): r = a - c*b.
區(qū)別是:
取余運算在計算商值向0方向舍棄小數(shù)位
取模運算在計算商值向負(fù)無窮方向舍棄小數(shù)位
比如a=4,b=-3時,a/b = -1.3333...
此時,取余c=1,取模c=-2
(%在不同語言中有不同的意義,比如Java或者c/c++中%為取余,python中%則為取模)
%(取余)運算:
1、結(jié)果的符號:結(jié)果的符號與被除數(shù)的符號相同,例:x%y 中 為 x 的符號 (結(jié)果的絕對值與x、y都為正數(shù)時相同)
2、x%y 中如果 x < y 則結(jié)果為x
3、0%x 結(jié)果為 0
4、x%0 除0錯誤
Math.floorMod(x,y) (取模):
1、簡單記憶:與y符號相同
2、x > y:結(jié)果的絕對值與 % 運算相同
3、x < y:①符號相同 結(jié)果的絕對值為 y - x ;②符號不同 結(jié)果的絕對值與 % 運算相同
符號對照 x y x%y Math.floorMod(x,y) - + - + + - + - - - - - + + + +補(bǔ)充知識:java.lang.Math
了解和記錄一下math類的各種方法,以便以后查找
math.sin:求出sin值
math.cos:求出cos值
math.tan:求出tan值
sinθ=cosθ*tanθ
math.asin:根據(jù)sin值求角度
math.acos:根據(jù)cos值求角度
math.atan:根據(jù)tan值求角度
math.toRadians:根據(jù)角度求弧度
math.toDegree:根據(jù)弧度求角度
math.exp:E的X冪
math.log:以E為底的對數(shù)
math.log10:以10為底的對數(shù)
math.sqrt:x的二次方根
math.cbrt:x的三次方根
math.IEEEremainder:根據(jù)規(guī)定的兩個參數(shù)計算剩余操作
*根據(jù)ieee 754標(biāo)準(zhǔn)。
math.ceil:返回最近的且大于的整數(shù)
math.floor:返回最近的且小于的整數(shù)
math.rint:返回最接近的整數(shù),如果剛好居中,則取偶數(shù)
math.atan2:結(jié)果angel是一個弧度值,也可以表示相對直角三角形對角的角,其中 x 是臨邊邊長,而 y 是對邊邊長,計算兩點間連線的夾角.(3,3)和(5,5)和原點構(gòu)成的線的夾角,math.atan2(3-5,3-5),計算出來是弧度值,再轉(zhuǎn)成角度即可。
math.pow:x的y次冪
math.round:跟四舍五入很像,但是不是。小數(shù)點后等于5,取整數(shù),正數(shù),整數(shù)+1,負(fù)數(shù),整數(shù)不變,大于5,整數(shù)部分+1,正負(fù)號不變,小于5,取整數(shù)
math.random:隨機(jī)返回0-1之間的無符號double值
math.addExact:求int和long的和值,超過范圍則拋異常
math.substractExact:求int和Long的差值,超出范圍則拋異常
math.multiplyExact:求int和long的乘值,超出范圍則拋異常
math.incrementExact:求int和long的+1值,超出范圍則拋異常
math.decrementExact:求int和Long的-1值,超出范圍則拋異常
math.negateExact:求int和long的取反值,超出范圍則拋異常
math.toIntExact:求Long的int值,超出范圍則拋異常
math.floorDiv:第一個參數(shù)除以第二參數(shù),然后針對結(jié)果執(zhí)行floor操作,返回小于或等于商的整數(shù)
math.floorMod: return x-floorDiv(x,y)*y;
math.abs:取絕對值
math.max:取最大值
math.min:取最小值
math.sinh:雙曲正弦函數(shù)sinh(x)=(exp(x)-exp(-x))/2.0
math.cosh:雙曲余弦函數(shù)cosh(x)=(exp(x)+exp(-x))/2.0
math.tanh:tanh(x)=sinh(x)/cosh(x)
以上這篇Java中 % 與Math.floorMod() 區(qū)別詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Intellij IDEA 2019 最新亂碼問題及解決必殺技(必看篇)2. 《javascript設(shè)計模式》學(xué)習(xí)筆記三:Javascript面向?qū)ο蟪绦蛟O(shè)計單例模式原理與實現(xiàn)方法分析3. 利用django創(chuàng)建一個簡易的博客網(wǎng)站的示例4. 未來的J2EE主流應(yīng)用框架:對比Spring和EJB35. JS繪圖Flot如何實現(xiàn)動態(tài)可刷新曲線圖6. ASP.NET MVC獲取多級類別組合下的產(chǎn)品7. JS+css3實現(xiàn)幻燈片輪播圖8. 關(guān)于HTML5的img標(biāo)簽9. Android自定義View實現(xiàn)掃描效果10. PHP5.0正式發(fā)布 不完全兼容PHP4 新增多項功能
