java 数字计算不能使用float,否则有问题0.7F ----会展示成0.699999999造成了数字加减异常,需要使用BigDecimal
/**
* * 两个Double数相加 *
*
* @param v1
* *
* @param v2
* *
* @return Double
*/
public static Double doubleAdd(Double v1, Double v2) {
BigDecimal b1 = new BigDecimal(v1.toString());
BigDecimal b2 = new BigDecimal(v2.toString());
return new Double(b1.add(b2).doubleValue());
}
/**
* * 两个Double数相减 * v1 减 v2
*
* @param v1
* *
* @param v2
* *
* @return Double
*/
public static Double doubleSub(Double v1, Double v2) {
BigDecimal b1 = new BigDecimal(v1.toString());
BigDecimal b2 = new BigDecimal(v2.toString());
return new Double(b1.subtract(b2).doubleValue());
}
public static Double doubleAdd(float v1, float v2) {
BigDecimal b1 = new BigDecimal(v1+"");
BigDecimal b2 = new BigDecimal(v2+"");
return new Double(b1.add(b2).doubleValue());
}
public static Double doubleSub(float v1, float v2) {
BigDecimal b1 = new BigDecimal(v1+"");
BigDecimal b2 = new BigDecimal(v2+"");
return new Double(b1.subtract(b2).doubleValue());
}
不能使用 BigDecimal b1 = new BigDecimal(float);//这也会造成0.7---0.69999
需要flaot转string,再转BigDecimal