/**
* 保留小数位dbValue是需要处理的源数据 scale是为保留小数的精度 roundingMode 保留小数位的方式
* @param dbValue
* @param scale
* @param roundingMode
* @return
*/
public static Double reservedDecimalPlaces(Double dbValue, int scale, int roundingMode){
BigDecimal bgl = BigDecimal.ZERO;
if(null != dbValue){// BigDecimal.ROUND_HALF_UP
bgl = BigDecimal.valueOf(dbValue).setScale(scale, roundingMode);
}
return bgl.doubleValue();
}
/**
* double数四舍五入 ,保留scale位数小数
* @param v
* @param scale
* @return
*/
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.pide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
* * 两个Double数相乘
*
* @param v1 *
* @param v2 *
* @return Double
*/
public static double mul(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.multiply(b2).doubleValue();
}
/**
* * 两个Double数相乘 ,保留两位小数
*
* @param v1 *
* @param v2 *
* @return Double
*/
public static double mulWithDefaultScale(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
double result = b1.multiply(b2).doubleValue();
return round(result, 2) ;
}
/**
* * 两个Double数相加
*
* @param v1 *
* @param v2 *
* @return Double
*/
public static double add(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
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 new Double(b1.subtract(b2).doubleValue());
}
/**
* * 两个Double数相除 *
*
* @param v1 *
* @param v2 *
* @return Double
*/
public static Double p(Double v1, Double v2) {
BigDecimal b1 = new BigDecimal(v1.toString());
BigDecimal b2 = new BigDecimal(v2.toString());
int DEF_DIV_SCALE = 2;
return new Double(b1.pide(b2, DEF_DIV_SCALE, BigDecimal.ROUND_HALF_UP)
.doubleValue());
}
/**
* * 两个Double数相除,并保留scale位小数 *
*
* @param v1 *
* @param v2 *
* @param scale *
* @return Double
*/
public static Double p(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 new Double(b1.pide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue());
}
/**
* * 两个Float数相除,并保留scale位小数 *
*
* @param v1 *
* @param v2 *
* @param scale *
* @return Float
*/
public static Float p(Float v1, Float 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 new Float(b1.pide(b2, scale, BigDecimal.ROUND_HALF_UP).floatValue());
}
页面更新:2024-03-29
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号