首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库 | 站长工具
会员投稿 投稿指南 RSS订阅
当前位置:主页>网络编程>java教程>资讯:在Java中实现浮点数的精确运算

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

www.jz123.cn  2009-11-13   来源:   中国建站    责任编辑(袁袁)    我要投递新闻

 

     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).doubleval_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).doubleval_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).doubleval_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).doubleval_rue();
  }
  public static double div(double v1,double v2,int scale){
  if(scale<0){
  throw new IllegalArgumentException(
  "The scale must be a positive integer or zero");
  }
  BigDecimal b1=new BigDecimal(Double.toString(v1));
  BigDecimal b2=new BigDecimal(Double.toString(v2));
  return b1.divide(b2, scale,BigDecimal.ROUND_HALF_UP).doubleval_rue();
  }
  public static double round(double v,int scale){
  if(scale<0){
  throw new IllegalArgumentException(
  "The scale must be a positive integer or zero");
  }
  BigDecimal b=new BigDecimal(Double.toString(v));
  BigDecimal one=new BigDecimal(1);
  return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleval_rue();
  }
  public static void main(String [] args){
  Arith arith=new Arith();
  System.out.println(arith.div(13,3));
  }
  }

上一篇:Java中静态变量的适用场景 下一篇:通过Java Swing看透MVC设计模式 (1)

评论总数:0 [ 查看全部 ] 网友评论


关于我们隐私版权广告服务友情链接联系我们网站地图