Java中的 BigDecimal divide() 方法及示例
Java.math.BigDecimal .divide(BigDecimal divisor)用于计算两个 BigDecimal 的商。商由(this / divisor)给出。此方法对调用此方法的当前 BigDecimal 执行操作,并将 BigDecimal 作为参数传递。
Java中有五个可用的divide方法重载,如下所示:
- 除(BigDecimal 除数)
- 除(BigDecimal 除数,MathContext mc)
- 除(BigDecimal 除数,RoundingMode 舍入模式)
- 除数(BigDecimal 除数,整数刻度,RoundingMode roundingMode)
- 除数(BigDecimal 除数,整数舍入模式)
注意:从Java 9开始不推荐使用方法divide(BigDecimal divisor, int roundingMode) 。
除(BigDecimal 除数)
商由(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
参考: Java : Java(Java )
除(BigDecimal 除数,MathContext mc)
此方法用于计算值为(this / divisor)的两个 BigDecimal 的商,并根据上下文设置进行四舍五入。
句法:
public BigDecimal divide(BigDecimal divisor,
MathContext mc)
参数:此方法接受两个参数:
- 这个 BigDecimal 被除以的除数
- 用于上下文设置的MathContext类型的mc 。
返回值:此方法返回一个 BigDecimal,它保存结果(this / divisor)并根据需要四舍五入。
异常:如果结果不精确但舍入模式为 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
参考: Java : Java(Java, Java )
除(BigDecimal 除数,RoundingMode 舍入模式)
商由(this / divisor)给出,其首选比例是 this.scale()。如果需要舍入以生成具有给定比例的结果,则应用特定的舍入模式。
句法:
public BigDecimal divide(BigDecimal divisor,
RoundingMode roundingMode)
参数:此方法接受两个参数:
- 这个 BigDecimal 被除以的除数
- RoundingMode 类型的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
参考: Java : Java(Java, Java )
除数(BigDecimal 除数,整数刻度,RoundingMode roundingMode)
商由指定首选比例的(this / divisor)给出。如果需要舍入以生成具有指定比例的结果,则应用指定的舍入模式。
句法:
public BigDecimal divide(BigDecimal divisor,
int scale,
RoundingMode roundingMode)
参数:此方法接受三个参数:
- 这个 BigDecimal 被除以的除数
- RoundingMode 类型的 RoundingMode,它告诉应用哪种舍入模式
- scale设置商的比例。
返回值:此方法返回一个 BigDecimal,其中包含结果(this / divisor) 。
异常:如果 roundingMode 为 UNNECESSARY 并且指定的比例不足以准确表示除法的结果或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 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: Java/javase/12/docs/api/ Java.base/ Java/math/BigDecimal.html#divide(java .math.BigDecimal, int, Java Java.舍入模式)
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。