取余運算符是“%”它是一個雙目運算符,它的操作數(shù)通常是正整數(shù)也可以是負數(shù)甚至是浮點數(shù),如果負數(shù)參與此運算,則需要特別注意,對于整數(shù),java的取余運算規(guī)則如下
監(jiān)利網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),監(jiān)利網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為監(jiān)利上1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的監(jiān)利做網(wǎng)站的公司定做!
a%b=a-(a/b)*b
例如
5%3=5-(5/3)*3=2
5%-3=5-(5/-3)*-3=2
-5%3=-5-(-5/3)*3=-2
-5%-3=-5-(-5/-3)*-3=-2
如果操作數(shù)中有浮點數(shù)則采用的規(guī)則為
a%b=a-(b*q),這里q=int(a/b)
5.2%3.1=5.2-1*3.1=2.1
5.2%-3.1=5.2-(-1)*(-3.1)=2.1
-5.2%3.1=-5.1-(-1)*3.1=-2.1
-5.2%-3.1=-5.1-(-1)*(-3.1)=-2.1
整數(shù)之間的取模求余運算很好求,但幾乎沒有遇到過對負數(shù)進行取模求余,直接看下面代碼:
Java代碼
/**
*
*?@author?Logic
*
*/
public?class?Test?{
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
System.out.println("-3%-2="?+?-3%-2);
System.out.println("3%-2="?+?3%-2);
System.out.println("-3%2="?+?-3%2);
}
}
/**
*?Result
*?-3%-2=-1
*?3%-2=1
*?-3%2=-1
*/
java的取模運算支持類型:字符型(自然不包括負數(shù))、字節(jié)型、短整型、整型、長整型、單精度浮點型、雙精度浮點型。
取余是一個比較常見的運算,在各種編程語言中均有相應(yīng)的運算符(Java/C的%, Pascal/Delphi的mod等等)。Java取余運算符 (%)一個表達式的值除以另一個表達式的值,返回余數(shù)。
result = number1 % number2
參數(shù):result 任何變量。number1 任何數(shù)值表達式。number2 任何數(shù)值表達式。
java總BigDecimal求余的代碼如下:
package?com.qiu.lin.he;
import?java.math.BigDecimal;
public?class?CeShi?{
public?static?void?main(String[]?args)?{
BigDecimal?bg?=?BigDecimal.valueOf(11);
BigDecimal?om2?=?BigDecimal.valueOf(25);
System.out.println(om2.divideAndRemainder(bg)[1]);//取余
}
}
代碼運行結(jié)果如下:
/斜杠計算,只取整數(shù)部分,你只要把那個值算出來比如,2/5得到0.4那邊取整數(shù),即0;%取余,只要你把能整除指定數(shù)的那部分劃掉,剩下的就是余數(shù),比如,2%5取余,因為沒有可以整除5的那部分,就不管了,那么只剩下2,即余數(shù)是2
首先在程序需要中對INT型變量/代表取整運行,注意區(qū)分它們的不同,而%只能用于整數(shù),取余運算 5%13=5,5除以13商0余5。
java取余運算:
取余(或余數(shù))運算符用 number1 除以 number2 (把浮點數(shù)四舍五入為整數(shù)),然后只返回余數(shù)作為 result。
通常取模運算也叫取余運算,他們都遵循處罰法則,返回結(jié)果都是余數(shù);
Java中取余運算具有如下性質(zhì):對所有int數(shù)值a和所有非零int數(shù)值b滿足:(a / b ) * b + (a % b) == a;
這意味著當(dāng)取余操作返回一個非零的結(jié)果時。它與左操作數(shù)具有相同的正負符號。