当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java BigDecimal divide()用法及代码示例


java.math.BigDecimal.divide(BigDecimal divisor)用于计算两个BigDecimal的商。商由(this /除数)给出。此方法对当前的BigDecimal进行操作,调用该方法并将BigDecimal作为参数传递。

Java中有五种重载的除法方法重载,如下所示:


  • divide(BigDecimal divisor)
  • divide(BigDecimal divisor,MathContext mc)
  • divide(BigDecimal divisor,RoundingMode roundingMode)
  • divide(BigDecimal divisor,整数比例,RoundingMode roundingMode)
  • divide(BigDecimal divisor,int roundingMode)

注意:从Java 9开始不推荐使用divide(BigDecimal divisor,int roundingMode)。

divide(BigDecimal divisor)

商由(this /除数)给出,其首选标度为(this.scale() – divisor.scale())。
用法:

public BigDecimal divide(BigDecimal divisor)

参数:此方法接受参数除数,该BigDecimal将通过该参数除以获得商。
返回值:此方法返回保存结果的BigDecimal(这个/除数)
异常:如果参数除数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)

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

public BigDecimal divide(BigDecimal divisor,
                         MathContext mc)

参数:此方法接受两个参数:

  • divisor以此BigDecimal除以
  • mc类型为MathContext的上下文设置。

返回值:此方法返回一个保存结果(this /divisor)的BigDecimal,并根据需要四舍五入。

异常:如果结果不精确,但舍入模式为UNNECESSARY或mc.precision == 0,并且商具有非终止的十进制扩展,则该方法将引发Arithmetic Exception。


下面的程序用于说明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类型RoundingMode,它指示要应用的舍入模式。

返回值:此方法返回一个保存结果(此/除数)的BigDecimal。
异常:方法抛出算术异常如果roundingMode为UNNECESSARY且this.scale()不足以精确表示除法的结果,或者除数是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 /除数)给出,其首选标度已指定。如果需要舍入以生成具有指定比例的结果,则将应用指定的舍入模式。
用法:


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

参数:此方法接受三个参数:

  • divisor以此BigDecimal除以
  • roundingMode类型RoundingMode,它指示要应用的舍入模式
  • scale设置商的比例。

返回值:此方法返回一个保存结果(此/除数)的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); 
    } 
}

相关用法


注:本文由纯净天空筛选整理自Rajnis09大神的英文原创作品 BigDecimal divide() Method in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。