Java BigDecimal divideToIntegralValue()方法及示例

Java BigDecimal divideToIntegralValue()方法及示例

java.math.BigDecimal .divideToIntegralValue(BigDecimal divisor) 用于计算两个BigDecimals (this / divisor) 的商的整数部分,并将其向下舍入。结果的首选比例是(this.scale() – divisor.scale() )。该方法对当前的BigDecimal进行操作,该方法被调用时,BigDecimal作为参数被传递。在Java中,有两个divideToIntegralValue方法的重载,如下所示。

  • divideToIntegralValue(BigDecimal divisor)
  • divideToIntegralValue(BigDecimal divisor, MathContext mc)

divideToIntegralValue(BigDecimal divisor)

语法

public BigDecimal divideToIntegralValue(BigDecimal divisor)

参数: 该方法接受一个 除数 参数,该BigDecimal将被除掉。
返回值: 该方法返回一个BigDecimal,该BigDecimal持有结果的整数部分 (本数/除数)。
异常: 除数 参数不能为 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 divisor, MathContext mc)

由于精确商的整数部分不取决于四舍五入模式,所以四舍五入模式不影响此方法返回的值。结果的首选比例是(this.scale() – divisor.scale() )。

语法

public BigDecimal divideToIntegralValue(BigDecimal divisor,
                                        MathContext mc)

参数: 该方法接受一个 被除数 的参数和一个 MathContext 类型的参数 mc ,用于设置上下文。 返回值: 该方法返回一个BigDecimal,其中包含结果的整数部分 (this / divisor)。

异常: 该方法在下列情况下会抛出算术异常。

  • 参数 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/math/BigDecimal.html#divideToIntegralValue(java.math.BigDecimal)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程