java中double型数据的加减乘除
public
class
Arith{
private static final int DEF_DIV_SCALE = 10 ;
/**
*两个Double数相加
* @param v1
* @param v2
* @return Double
*/
public static Doubleadd(Doublev1,Doublev2){
BigDecimalb1 = new BigDecimal(v1.toString());
BigDecimalb2 = new BigDecimal(v2.toString());
return b1.add(b2).doubleValue();
}
/**
*两个Double数相减
* @param v1
* @param v2
* @return Double
*/
public static Doublesub(Doublev1,Doublev2){
BigDecimalb1 = new BigDecimal(v1.toString());
BigDecimalb2 = new BigDecimal(v2.toString());
return b1.subtract(b2).doubleValue();
}
/**
*两个Double数相乘
* @param v1
* @param v2
* @return Double
*/
public static Doublemul(Doublev1,Doublev2){
BigDecimalb1 = new BigDecimal(v1.toString());
BigDecimalb2 = new BigDecimal(v2.toString());
return b1.multiply(b2).doubleValue();
}
/**
*两个Double数相除
* @param v1
* @param v2
* @return Double
*/
public static Doublediv(Doublev1,Doublev2){
BigDecimalb1 = new BigDecimal(v1.toString());
BigDecimalb2 = new BigDecimal(v2.toString());
return b1.divide(b2,DEF_DIV_SCALE,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
*两个Double数相除,并保留scale位小数
* @param v1
* @param v2
* @param scale
* @return Double
*/
public static Doublediv(Doublev1,Doublev2, int scale){
if (scale < 0 ){
throw new IllegalArgumentException(
" Thescalemustbeapositiveintegerorzero " );
}
BigDecimalb1 = new BigDecimal(v1.toString());
BigDecimalb2 = new BigDecimal(v2.toString());
return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
}
private static final int DEF_DIV_SCALE = 10 ;
/**
*两个Double数相加
* @param v1
* @param v2
* @return Double
*/
public static Doubleadd(Doublev1,Doublev2){
BigDecimalb1 = new BigDecimal(v1.toString());
BigDecimalb2 = new BigDecimal(v2.toString());
return b1.add(b2).doubleValue();
}
/**
*两个Double数相减
* @param v1
* @param v2
* @return Double
*/
public static Doublesub(Doublev1,Doublev2){
BigDecimalb1 = new BigDecimal(v1.toString());
BigDecimalb2 = new BigDecimal(v2.toString());
return b1.subtract(b2).doubleValue();
}
/**
*两个Double数相乘
* @param v1
* @param v2
* @return Double
*/
public static Doublemul(Doublev1,Doublev2){
BigDecimalb1 = new BigDecimal(v1.toString());
BigDecimalb2 = new BigDecimal(v2.toString());
return b1.multiply(b2).doubleValue();
}
/**
*两个Double数相除
* @param v1
* @param v2
* @return Double
*/
public static Doublediv(Doublev1,Doublev2){
BigDecimalb1 = new BigDecimal(v1.toString());
BigDecimalb2 = new BigDecimal(v2.toString());
return b1.divide(b2,DEF_DIV_SCALE,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
*两个Double数相除,并保留scale位小数
* @param v1
* @param v2
* @param scale
* @return Double
*/
public static Doublediv(Doublev1,Doublev2, int scale){
if (scale < 0 ){
throw new IllegalArgumentException(
" Thescalemustbeapositiveintegerorzero " );
}
BigDecimalb1 = new BigDecimal(v1.toString());
BigDecimalb2 = new BigDecimal(v2.toString());
return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
}