`
ssxxjjii
  • 浏览: 933044 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于java 中double型数据的四舍五入与加减乘除

阅读更多
  1. java中用DecimalFormat df = new DecimalFormat("#######0.00");进行四舍五入时,如果最后一位为5,则会直接舍掉,而不会入上去。如:12.515,得到得结果将是12.51。解决方法:   
  2. blic static double round(double v,int scale){   
  3.       if(scale<0){   
  4.           throw new IllegalArgumentException(   
  5.               "The scale must be a positive integer or zero");   
  6.       }   
  7.       BigDecimal b = new BigDecimal(Double.toString(v));   
  8.       BigDecimal one = new BigDecimal("1");   
  9.       return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();   
  10.   }   
  11.   java中的浮点数类型floatdouble不能进行运算,遇到有些数据得到的数据不准确。如:3.121-1=3.1209999999998。解决方法:   
  12. blic class Arith {   
  13.   private static final int DEF_DIV_SCALE = 10;   
  14.      
  15.   /**  
  16.    * 两个Double数相加  
  17.    * @param v1  
  18.    * @param v2  
  19.    * @return Double  
  20.    */  
  21.   public static Double add(Double v1,Double v2){   
  22.       BigDecimal b1 = new BigDecimal(v1.toString());   
  23.       BigDecimal b2 = new BigDecimal(v2.toString());   
  24.       return b1.add(b2).doubleValue();   
  25.   }   
  26.      
  27.   /**  
  28.    * 两个Double数相减  
  29.    * @param v1  
  30.    * @param v2  
  31.    * @return Double  
  32.    */  
  33.   public static Double sub(Double v1,Double v2){   
  34.       BigDecimal b1 = new BigDecimal(v1.toString());   
  35.       BigDecimal b2 = new BigDecimal(v2.toString());   
  36.       return b1.subtract(b2).doubleValue();   
  37.   }   
  38.      
  39.   /**  
  40.    * 两个Double数相乘  
  41.    * @param v1  
  42.    * @param v2  
  43.    * @return Double  
  44.    */  
  45.   public static Double mul(Double v1,Double v2){   
  46.       BigDecimal b1 = new BigDecimal(v1.toString());   
  47.       BigDecimal b2 = new BigDecimal(v2.toString());   
  48.       return b1.multiply(b2).doubleValue();   
  49.   }   
  50.      
  51.   /**  
  52.    * 两个Double数相除  
  53.    * @param v1  
  54.    * @param v2  
  55.    * @return Double  
  56.    */  
  57.   public static Double div(Double v1,Double v2){   
  58.       BigDecimal b1 = new BigDecimal(v1.toString());   
  59.       BigDecimal b2 = new BigDecimal(v2.toString());   
  60.       return b1.divide(b2,DEF_DIV_SCALE,BigDecimal.ROUND_HALF_UP).doubleValue();   
  61.   }   
  62.      
  63.   /**  
  64.    * 两个Double数相除,并保留scale位小数  
  65.    * @param v1  
  66.    * @param v2  
  67.    * @param scale  
  68.    * @return Double  
  69.    */  
  70.   public static Double div(Double v1,Double v2,int scale){   
  71.       if(scale<0){   
  72.           throw new IllegalArgumentException(   
  73.           "The scale must be a positive integer or zero");   
  74.       }   
  75.       BigDecimal b1 = new BigDecimal(v1.toString());   
  76.       BigDecimal b2 = new BigDecimal(v2.toString());   
  77.       return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();   
  78.   }   
分享到:
评论

相关推荐

    java编写的计算器,能实现加减乘除

    java编写的计算器,能实现加减乘除。 //***该梦幻计算器与Windows附件自带计算器的标准版功能、界面相仿***// //******但还不支持键盘操作,如有需要,下一次等级将满足你**********// import java.awt.*; import ...

    分数的加减乘除运算Rational Numbers

    例如1/3=0.0000…,它不能使用数据类型double或float的浮点格式精确表示出来,为了得到准确结果,必须使用有理数。 – Java提供了整数和浮点数的数据类型,但是没有提供有理数的类型。 – 由于有理数与整数、...

    DoubleMathUtils.java

    double 数据加减乘除,取精度,保留指定小数位数 四舍五入,将货币元-转为-分,double 数据加减乘除,取精度,保留指定小数位数 四舍五入,将货币元-转为-分

    利用Java输入输出流编程实现计算器

    (4)从第一个文件中取第一个操作数,从第二个文件中取第二个操作数,将其按照第三步中选择的运算做加减乘除后存入到第三个文件中。 (5)从第三个文件中读取出运算结果。 其他要求: (1)要求处理double型或float...

    用JAVA实现复数的四则运算

    import java.io.*; public class Book{ double sb; double xb; Book(double x,double y){ this.sb=x; this.xb=y; } Book(){ } public static void main(String args[]){ System.out.println("请...

    用Java编写一个简易的计算器.zip

    java课上写的计算器,能够实现输入一行计算公式,进行简单的加减乘除,数据类型double类型,没有制作图形化界面。

    commons-math3-3.6.1-API文档中文版

    math3是Apache下的一款进行数学计算的一款java开源工具。 math3是一款非常好用的工具,里面提供了各种运算的方法及类,方便大家调用。...支持常用的矩阵操作、如矩阵转置、矩阵求逆、加减乘除 支持LU和QR分解等。

    Java实现简单计算器

    java课上写的计算器,能够实现输入一行计算公式,进行简单的加减乘除,数据类型double类型,有制作图形化界面,资源免费下载,请留下一个关注哦

    2009达内SQL学习笔记

    2、对数据类型的列可进行运算(如加减乘除)。 3、对列起别名:有直接起别名,加AS起别名,用双引号起别名等三种方法 (单引号,引起字符串;双引号,引起别名。起别名有符号,或者区分大小写时,必须用双引号) 多...

    ACM巨全模板 .pdf

    3.低精度加减乘除 4.一些组合数学公式 5.二维坐标的离散化 6.消除向下取整的方法 7.一些常用的数据结构 (STL) 8.Devc++的使用技巧 9.封装好的一维离散化 10.Ubuntu对拍程序 11.常数 12.Codeblocks使用技巧 13.java...

Global site tag (gtag.js) - Google Analytics