Java中的 BigDecimal divideToIntegralValue() 方法及示例
Java.math.BigDecimal .divideToIntegralValue(BigDecimal divisor)用于计算向下舍入的两个 BigDecimals (this / divisor)的商的整数部分。结果的首选比例是 (this.scale() – divisor.scale())。此方法对调用此方法的当前 BigDecimal 执行操作,并将 BigDecimal 作为参数传递。
Java中有两个可用的 divideToIntegralValue 方法重载,如下所示:
- divideToIntegralValue(BigDecimal 除数)
- divideToIntegralValue(BigDecimal 除数,MathContext mc)
divideToIntegralValue(BigDecimal 除数)
句法:
public BigDecimal divideToIntegralValue(BigDecimal divisor)
参数:此方法接受一个参数除数,此 BigDecimal 将除以该除数。
返回值:此方法返回一个 BigDecimal,其中包含结果的整数部分(this / divisor) 。
异常:参数除数不能为0 ,否则抛出算术异常。
下面的程序用于说明 BigDecimal 的 divideToIntegralValue() 方法。
// Java program to demonstrate
// divideToIntegralValue() 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 divideToIntegralValue() method
res = a.divideToIntegralValue(divisor);
// Display the result in BigDecimal
System.out.println(res);
}
}
12744197
divideToIntegralValue(BigDecimal 除数,MathContext mc)
由于精确商的整数部分不依赖于舍入模式,因此舍入模式不会影响此方法返回的值。结果的首选比例是 (this.scale() – divisor.scale())。
句法:
public BigDecimal divideToIntegralValue(BigDecimal divisor,
MathContext mc)
参数:此方法接受一个用于除此 BigDecimal 的参数除数和一个用于上下文设置的MathContext类型的参数mc 。
返回值:此方法返回一个 BigDecimal,其中包含结果的整数部分(this / divisor) 。
异常:该方法在以下情况下抛出算术异常:
- 参数除数不得为0 。
- 如果mc.precision > 0并且结果需要超过mc.precision位数的精度。
下面的程序用于说明 BigDecimal 的 divideToIntegralValue() 方法。
示例 1:
// Java program to demonstrate
// divideToIntegralValue() 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
= "2";
// Convert the string input to BigDecimal
BigDecimal a
= new BigDecimal(input1);
BigDecimal divisor
= new BigDecimal(input2);
// Set precision to 10
MathContext mc
= new MathContext(10);
// Using divideToIntegralValue() method
res = a.divideToIntegralValue(divisor, mc);
// Display the result in BigDecimal
System.out.println(res);
}
}
12268241
示例 2:说明在 divideToIntegralValue() 方法中发生异常的程序
// Java program to demonstrate
// divideToIntegralValue() 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
= "2";
// 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);
// As the result requires
// a precision of more than
// mc.precision digits
// So Exception occur
try {
// Using divideToIntegralValue() method
res = a.divideToIntegralValue(divisor, mc);
// Display the result in BigDecimal
System.out.println(res);
}
catch (ArithmeticException e) {
System.out.println(e);
}
}
}
java.lang.ArithmeticException: Division impossible
参考: https://docs.oracle.com/en/ Java/javase/12/docs/api/ Java.base/ Java Java.math.BigDecimal)