-
-double 类型数据的加、减、乘、除、四舍五入 运算
-注意:当前除法运算保留小数位不准确,很抱歉。
可以使用,String的split方法,自行处理。
-
ArithmeticDouble.java
package com.my.test;
import java.math.BigDecimal;
/**
* Description: 四则运算(Double类型数)
* Copyright : Copyright (c) 2016
* Email : jusenr@163.com
* Author : Jusenr
* Date : 2016/7/26 19:36
*/
public class ArithmeticDouble {
/**
* Double数四舍五入
*
* @param v double型数据
* @param scale 精确度
* @return Double
*/
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).doubleValue();
}
/**
* 两个Double数相加
*
* @param v1 double型数据
* @param v2 double型数据
* @return Double
*/
public static Double add(Double v1, Double v2) {
BigDecimal b1 = new BigDecimal(v1.toString());
BigDecimal b2 = new BigDecimal(v2.toString());
return b1.add(b2).doubleValue();
}
/**
* 两个Double数相减
*
* @param v1 double型数据
* @param v2 double型数据
* @return Double
*/
public static Double sub(Double v1, Double v2) {
BigDecimal b1 = new BigDecimal(v1.toString());
BigDecimal b2 = new BigDecimal(v2.toString());
return b1.subtract(b2).doubleValue();
}
/**
* 两个Double数相乘
*
* @param v1 double型数据
* @param v2 double型数据
* @return Double
*/
public static Double mul(Double v1, Double v2) {
BigDecimal b1 = new BigDecimal(v1.toString());
BigDecimal b2 = new BigDecimal(v2.toString());
return b1.multiply(b2).doubleValue();
}
/**
* 两个Double数相除,并保留scale位小数
*
* @param v1 double型数据
* @param v2 double型数据
* @param scale 精确度
* @return Double
*/
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(v1.toString());
BigDecimal b2 = new BigDecimal(v2.toString());
return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
}