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
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
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
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);
}
}
相关用法
- Java BigDecimal pow()用法及代码示例
- Java BigDecimal add()用法及代码示例
- Java BigDecimal toEngineeringString()用法及代码示例
- Java BigDecimal toPlainString()用法及代码示例
- Java BigDecimal sqrt()用法及代码示例
- Java BigDecimal toString()用法及代码示例
- Java BigDecimal divideAndRemainder()用法及代码示例
- Java BigDecimal divideToIntegralValue()用法及代码示例
- Java BigDecimal subtract()用法及代码示例
- Java BigDecimal remainder()用法及代码示例
- Java BigDecimal setScale()用法及代码示例
- Java BigDecimal floatValue()用法及代码示例
- Java BigInteger divide()用法及代码示例
- Java IntMath.divide(int, int, RoundingMode)用法及代码示例
- Java LongMath.divide(long, long, RoundingMode)用法及代码示例
注:本文由纯净天空筛选整理自Rajnis09大神的英文原创作品 BigDecimal divide() Method in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。