在Java中实现浮点数的精确运算

2014-11-23 22:03:23 · 作者: · 浏览: 85

  package com.lv;


  import java.math.BigDecimal;


  public class Arith {


  public static double add(double v1,double v2){


  BigDecimal b1=new BigDecimal(Double.toString(v1));


  BigDecimal b2=new BigDecimal(Double.toString(v2));


  return b1.add(b2).doubleva l_rue();


  }


  public static double sub(double v1,double v2){


  BigDecimal b1=new BigDecimal(Double.toString(v1));


  BigDecimal b2=new BigDecimal(Double.toString(v2));


  return b1.subtract(b2).doubleva l_rue();


  }


  public static double mul(double v1,double v2){


  BigDecimal b1=new BigDecimal(Double.toString(v1));


  BigDecimal b2=new BigDecimal(Double.toString(v2));


  return b1.multiply(b2).doubleva l_rue();


  }


  public static double div(double v1,double v2){


  BigDecimal b1=new BigDecimal(Double.toString(v1));


  BigDecimal b2=new BigDecimal(Double.toString(v2));


  return b1.divide(b2,10,BigDecimal.ROUND_HALF_UP).doubleva l_rue();


  }