当前位置: 代码迷 >> 综合 >> 关于BigDecimal一些运算问题。。。。。。。。
  详细解决方案

关于BigDecimal一些运算问题。。。。。。。。

热度:15   发布时间:2024-01-22 03:38:24.0


import java.math.BigDecimal;

public class testBigDecimal{
 public static double add(double d1, double d2)
 {        // 进行加法运算
  BigDecimal b1 = new BigDecimal(d1);
  BigDecimal b2 = new BigDecimal(d2);
  return b1.add(b2).doubleValue();
 }

 public static double sub(double d1, double d2)
 {        // 进行减法运算
  BigDecimal b1 = new BigDecimal(d1);
  BigDecimal b2 = new BigDecimal(d2);
  return b1.subtract(b2).doubleValue();
 }

 public static double mul(double d1, double d2)
 {        // 进行乘法运算
  BigDecimal b1 = new BigDecimal(d1);
  BigDecimal b2 = new BigDecimal(d2);
  return b1.multiply(b2).doubleValue();
 }

 public static double div(double d1,double d2,int len) {// 进行除法运算
  BigDecimal b1 = new BigDecimal(d1);
  BigDecimal b2 = new BigDecimal(d2);
  return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue();
 }

 public static double round(double d,int len) { // 进行四舍五入 操作
  BigDecimal b1 = new BigDecimal(d);
  BigDecimal b2 = new BigDecimal(1);
  // 任何一个数字除以1都是原数字
  // ROUND_HALF_UP是BigDecimal的一个常量,表示进行四舍五入的操作
  return b1.divide(b2, len,BigDecimal.ROUND_HALF_UP).doubleValue();
 }
 public static void main(String[] args){
  System.out.println("加法运算:" +testBigDecimal.round(testBigDecimal.add(8.123, 4.456), 3));
  System.out.println("减法运算:" + testBigDecimal.round(testBigDecimal.sub(8.123, 4.456), 3));
  System.out.println("乘法运算:" +testBigDecimal.round(testBigDecimal.mul(8.123, 4.456), 10));
  System.out.println("除法运算:" +testBigDecimal.div(8.123, 4.456, 15));
 }

}