(转) java double、float 运算

来源:互联网 发布:csgo n卡优化 编辑:程序博客网 时间:2024/05/22 03:25

转至http://www.cnblogs.com/shown/p/6305880.html

double类型四则运算例子:

1、相加

1     public static double add(double a1, double b1) {  2         BigDecimal a2 = new BigDecimal(Double.toString(a1));  3         BigDecimal b2 = new BigDecimal(Double.toString(b1));  4         return a2.add(b2).doubleValue();  5     }

 

2、相减

1     public static double sub(double a1, double b1) {  2         BigDecimal a2 = new BigDecimal(Double.toString(a1));  3         BigDecimal b2 = new BigDecimal(Double.toString(b1));  4         return a2.subtract(b2).doubleValue();  5     }

 

3、相乘

1     public static double mul(double a1, double b1) {  2         BigDecimal a2 = new BigDecimal(Double.toString(a1));  3         BigDecimal b2 = new BigDecimal(Double.toString(b1));  4         return a2.multiply(b2).doubleValue();  5     }

 

4、相除

复制代码
1     public static double div(double a1, double b1, int scale) {2         if (scale < 0) {  3             throw new IllegalArgumentException("error");  4         }5         BigDecimal a2 = new BigDecimal(Double.toString(a1));  6         BigDecimal b2 = new BigDecimal(Double.toString(b1));  7         return a2.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();  8     }
复制代码

scale参数为除不尽时,指定精度

TIP: 创建BigDecimal调用静态方法初始化更方便(BigDecimal.valueOf(XXX)): 

BigDecimal.valueOf(8).add(BigDecimal.valueOf(0.2)).doubleValue()
原创粉丝点击