Friday, 21 December 2007

double add in Java

public class Arith {
private static final int DEF_DIV_SCALE = 10;

/**
* 两个Double数相加
*
@param v1
*
@param v2
*
@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
*
@param v2
*
@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
*
@param v2
*
@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数相除
*
@param v1
*
@param v2
*
@return Double
*/
public static Double div(Double v1,Double v2){
BigDecimal b1
= new BigDecimal(v1.toString());
BigDecimal b2
= 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 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();
}

}

No comments:

About Me

My photo
It is a nice blog, isn't it?