Java中的BigDecimal类提供了丰富的数学运算方法,支持以下几种基本运算:
add(BigDecimal augend):返回一个BigDecimal,其值为(this + augend)。subtract(BigDecimal subtrahend):返回一个BigDecimal,其值为(this - subtrahend)。multiply(BigDecimal multiplicand):返回一个BigDecimal,其值为(this * multiplicand)。multiply(BigDecimal multiplicand, MathContext mc):使用指定的精度和舍入模式进行乘法运算。divide(BigDecimal divisor):返回一个BigDecimal,其值为(this / divisor)。默认情况下,除不尽时会抛出ArithmeticException。divide(BigDecimal divisor, int scale):返回一个BigDecimal,其值为(this / divisor),并指定小数点后的位数。divide(BigDecimal divisor, MathContext mc):使用指定的精度和舍入模式进行除法运算。divide(BigDecimal divisor, int scale, RoundingMode roundingMode):返回一个BigDecimal,其值为(this / divisor),并指定小数点后的位数和舍入模式。compareTo(BigDecimal val):比较两个BigDecimal的大小,返回-1、0或1。equals(Object obj):比较两个BigDecimal是否相等。abs():返回绝对值。negate():返回相反数。setScale(int newScale, RoundingMode roundingMode):设置小数点后的位数和舍入模式。stripTrailingZeros():去除末尾的零。toPlainString():返回不带指数的字符串表示。toEngineeringString():返回工程记数法的字符串表示。toBigInteger():将BigDecimal转换为BigInteger。toBigInteger(RoundingMode roundingMode):将BigDecimal转换为BigInteger,并指定舍入模式。import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
public class BigDecimalExample {
public static void main(String[] args) {
BigDecimal a = new BigDecimal("10.5");
BigDecimal b = new BigDecimal("2.5");
// 加法
BigDecimal sum = a.add(b);
System.out.println("Sum: " + sum);
// 减法
BigDecimal difference = a.subtract(b);
System.out.println("Difference: " + difference);
// 乘法
BigDecimal product = a.multiply(b);
System.out.println("Product: " + product);
// 除法
BigDecimal quotient = a.divide(b);
System.out.println("Quotient: " + quotient);
// 使用MathContext和RoundingMode
MathContext mc = new MathContext(10, RoundingMode.HALF_UP);
BigDecimal productWithMC = a.multiply(b, mc);
System.out.println("Product with MathContext: " + productWithMC);
BigDecimal quotientWithMC = a.divide(b, mc);
System.out.println("Quotient with MathContext: " + quotientWithMC);
}
}
通过这些方法,BigDecimal类提供了精确的数学运算,特别适用于需要高精度计算的场景,如金融计算。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。