Java BigDecimal divide()方法及示例

Java BigDecimal divide()方法及示例

java.math.BigDecimal .divide(BigDecimal divisor)用于计算两个BigDecimals的商。商值是由(this / divisor)给出的。该方法对当前的BigDecimal进行运算,该方法被调用时,BigDecimal作为参数被传递。

在Java中,有5个divide方法的重载,如下所示。

  • divide(BigDecimal divisor)
  • divide(BigDecimal divisor, MathContext mc)
  • divide( BigDecimal divisor, RoundingMode roundingMode)
  • divide( BigDecimal divisor, int scale, RoundingMode roundingMode)
  • divide( BigDecimal divisor, int roundingMode)

注意:从Java 9开始, divide(BigDecimal divisor, int roundingMode) 方法已被废弃。

divide(BigDecimal divisor)

商数由(this / divisor)给出,其首选比例为(this. scale() – divisor. scale() )。

语法

public BigDecimal divide(BigDecimal divisor)

参数: 本方法接受一个参数除数,这个BigDecimal要被除以这个参数来获得商。
返回值: 本方法返回一个BigDecimal,其中包含结果(this / divisor)。
异常: 如果参数除数为0或者精确的商没有一个终止的小数扩展,则会抛出算术异常。

下面的程序是用来说明BigDecimal的divide()方法。

// Java program to demonstrate
// divide() 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
            = "204800000";
        String input2
            = "256";
  
        // Convert the string input to BigDecimal
        BigDecimal a
            = new BigDecimal(input1);
        BigDecimal divisor
            = new BigDecimal(input2);
  
        // Using divide() method
        res = a.divide(divisor);
  
        // Display the result in BigDecimal
        System.out.println(res);
    }
}

输出。

800000

参考资料:https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/math/BigDecimal.html#divide(java.math.BigDecimal)

divide(BigDecimal divisor, MathContext mc)

此方法用于计算两个BigDecimals的商,其值为(this / divisor),并根据上下文设置进行四舍五入。

语法

public BigDecimal divide(BigDecimal divisor,
                         MathContext mc)

参数: 该方法接受两个参数。

  • divisor,这个BigDecimal要被除掉。
  • mc类型的MathContext,用于设置上下文。

返回值: 该方法返回一个BigDecimal,其中包含了结果(本数/除数),并根据需要进行了四舍五入。

异常: 如果结果是不精确的,但是四舍五入的模式是UNNECESSARY或者mc.precision == 0,并且商有一个非终止的小数扩展,该方法会抛出算术异常。

下面的程序用来说明BigDecimal的divide()方法。

// Java program to demonstrate
// divide() 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 divide() method
        res = a.divide(divisor, mc);
  
        // Display the result in BigDecimal
        System.out.println(res);
    }
}

输出。

92941

参考资料:https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/math/BigDecimal.html#divide(java.math.BigDecimal, java.math.MathContext)

divide(BigDecimal divisor, RoundingMode roundingMode)

商是由(this / divisor)给出的,其首选比例是this.scale()。如果需要进行四舍五入以产生符合给定比例的结果,则应用特定的四舍五入模式。

语法

public BigDecimal divide(BigDecimal divisor,
                         RoundingMode roundingMode)

参数: 该方法接受两个参数。

  • divisor,这个BigDecimal要被除以这个除数。
  • RoundingMode类型的四舍五入模式,告诉你要应用哪种四舍五入模式。

返回值: 该方法返回一个BigDecimal,其中包含结果(this / divisor)。

异常: 如果roundingMode是UNNECESSARY,并且this.scale()不足以准确表示除法的结果或者Divisor是0,该方法会抛出算术异常。

下面的程序用来说明BigDecimal的divide()方法。

// Java program to demonstrate
// divide() 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
            = "2453648454542";
        String input2
            = "264";
  
        // Convert the string input to BigDecimal
        BigDecimal a
            = new BigDecimal(input1);
        BigDecimal divisor
            = new BigDecimal(input2);
  
        // Using divide() method
        // Using RoundingMode.CEILING
        res = a.divide(divisor, RoundingMode.CEILING);
  
        // Display the result in BigDecimal
        System.out.println(res);
    }
}

输出。

9294122934

参考资料: https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/math/BigDecimal.html#divide(java.math.BigDecimal, java.math.RoundingMode)

divide(BigDecimal divisor, int scale, RoundingMode roundingMode)

商数由(this / divisor)给出,其首选比例被指定。如果需要进行四舍五入以产生具有指定比例的结果,将应用指定的四舍五入模式。

语法

public BigDecimal divide(BigDecimal divisor, 
                         int scale, 
                         RoundingMode roundingMode)

参数: 该方法接受三个参数。

  • divisor,这个BigDecimal要被除以这个除数。
  • RoundingMode类型的四舍五入模式,告诉你要应用哪种四舍五入模式。
  • scale,用于设置商的比例。

返回值: 该方法返回一个BigDecimal,该BigDecimal包含结果(本数/除数)。

异常: 如果roundingMode是UNNECESSARY,并且指定的比例不足以准确表示除法的结果,或者除数为0,该方法会抛出算术异常。

下面的程序用来说明BigDecimal的divide()方法。

// Java program to demonstrate
// divide() 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
            = "2453648454542";
        String input2
            = "264";
  
        // Convert the string input to BigDecimal
        BigDecimal a
            = new BigDecimal(input1);
        BigDecimal divisor
            = new BigDecimal(input2);
  
        // Using scale = 4
        int scale = 4;
  
        // Using divide() method
        // Using RoundingMode.CEILING
        res = a.divide(divisor, scale,
                       RoundingMode.CEILING);
  
        // Display the result in BigDecimal
        System.out.println(res);
    }
}

输出。

9294122933.8713

参考: https: //docs.oracle.com/en/java/javase/12/docs/api/java.base/java/math/BigDecimal.html#divide(java.math.BigDecimal, int, java.math.RoundingMode)。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程