Java BigDecimal remainder()方法及示例
java.math.BigDecimal .remainder(BigDecimal divisor)用于计算两个BigDecimals的余数。余数是由this.substract(this.divideToIntegralValue(divisor).multiply(divisor))给出。这个方法对当前的BigDecimal进行运算,这个方法是通过调用这个方法和作为参数传递的BigDecimal进行的。
注意:这不是modulo操作(结果可以是负数)。
在Java中,有两个remainder方法的重载,如下所示。
- remainder(BigDecimal divisor)
- remainder(BigDecimal divisor, MathContext mc)
remainder(BigDecimal divisor)
语法
public BigDecimal remainder(BigDecimal divisor)
参数: 本方法接受一个参数,这个BigDecimal要被除数除掉以获得余数。
返回值: 本方法返回一个BigDecimal,其中包含了结果(本数 % 除数)。
异常: 参数除数不能是0,否则会产生算术异常。
下面的程序用来说明BigDecimal的remainder()方法。
// Java program to demonstrate
// remainder() method of BigDecimal
import java.math.BigDecimal;
public class GFG {
public static void main(String[] args)
{
// BigDecimal object to store the result
BigDecimal res;
// For user input
// Use Scanner or BufferedReader
// Two objects of String created
// Holds the values
String input1
= "31452678569";
String input2
= "2468";
// Convert the string input to BigDecimal
BigDecimal a
= new BigDecimal(input1);
BigDecimal divisor
= new BigDecimal(input2);
// Using remainder() method
res = a.remainder(divisor);
// Display the result in BigDecimal
System.out.println(res);
}
}
输出。
373
remainder(BigDecimal divisor, MathContext mc)
本方法用于计算两个BigDecimals的余数,其值为(this % divisor),并根据上下文设置进行四舍五入。MathContext设置会影响用于计算余数的隐式除法。因此,余数可能包含多于 mc.getPrecision() 的数字。
语法
public BigDecimal remainder(BigDecimal divisor, MathContext mc)
参数: 本方法接受一个被除数的参数和一个MathContext类型的参数mc,用于上下文设置。
返回值: 该方法返回一个BigDecimal,其中包含了结果(这个%除数)。
异常: 该方法在以下情况下会抛出算术异常。
- 参数divisor不能是0。
- 如果mc.precision>0,并且结果需要的精度超过了mc.precision的位数。
下面的程序用来说明BigDecimal的remainder()方法。
// Java program to demonstrate
// remainder() method of BigDecimal
import java.math.*;
public class GFG {
public static void main(String[] args)
{
// BigDecimal object to store the result
BigDecimal res;
// For user input
// Use Scanner or BufferedReader
// Two objects of String created
// Holds the values
String input1
= "24536482";
String input2
= "264";
// Convert the string input to BigDecimal
BigDecimal a
= new BigDecimal(input1);
BigDecimal divisor
= new BigDecimal(input2);
// Set precision to 5
MathContext mc
= new MathContext(5);
// Using remainder() method
res = a.remainder(divisor, mc);
// Display the result in BigDecimal
System.out.println(res);
}
}
输出。
58
**参考资料: **https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/math/BigDecimal.html#remainder(java.math.BigDecimal)