当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
Java中实现浮点数的精确运算
发布时间:2010/8/23 10:27:23 来源:城市学习网 编辑:ziteng
  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");
  } [NextPage]   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));
  }
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved