parent
c989748ec5
commit
6802161647
4 changed files with 148 additions and 25 deletions
@ -0,0 +1,76 @@ |
||||
package org.jeecg.common.util; |
||||
|
||||
import java.math.BigDecimal; |
||||
|
||||
public class ComputeUtils { |
||||
|
||||
//默认除法运算精度
|
||||
private static final int DEF_DIV_SCALE = 10; |
||||
|
||||
//构造器私有化,让这个类不能实例化
|
||||
private ComputeUtils() { |
||||
} |
||||
|
||||
/** |
||||
*提供精确的加法运算 |
||||
* @param v1 |
||||
* @param v2 |
||||
* @return |
||||
*/ |
||||
public static double add(double v1, double v2) { |
||||
BigDecimal b1 = BigDecimal.valueOf(v1); |
||||
BigDecimal b2 = BigDecimal.valueOf(v2); |
||||
return b1.add(b2).doubleValue(); |
||||
} |
||||
|
||||
/** |
||||
*精确的减法运算 |
||||
* @param v1 |
||||
* @param v2 |
||||
* @return |
||||
*/ |
||||
public static double sub(double v1, double v2) { |
||||
BigDecimal b1 = BigDecimal.valueOf(v1); |
||||
BigDecimal b2 = BigDecimal.valueOf(v2); |
||||
return b1.subtract(b2).doubleValue(); |
||||
} |
||||
|
||||
/** |
||||
* 精确的乘法运算 |
||||
* @param v1 |
||||
* @param v2 |
||||
* @return |
||||
*/ |
||||
public static double mul(double v1, double v2) { |
||||
BigDecimal b1 = BigDecimal.valueOf(v1); |
||||
BigDecimal b2 = BigDecimal.valueOf(v2); |
||||
return b1.multiply(b2).doubleValue(); |
||||
} |
||||
|
||||
|
||||
/** |
||||
//提供(相对)精确的除法运算,当发生除不尽的情况时
|
||||
//精确到小数点后10位的数字四舍五入
|
||||
* @param v1 分子 |
||||
* @param v2 分母 |
||||
* @return |
||||
*/ |
||||
public static double div(double v1, double v2) { |
||||
BigDecimal b1 = BigDecimal.valueOf(v1); |
||||
BigDecimal b2 = BigDecimal.valueOf(v2); |
||||
return b1.divide(b2, DEF_DIV_SCALE, BigDecimal.ROUND_HALF_UP).doubleValue(); |
||||
} |
||||
|
||||
public static double div2(double v1, double v2) { |
||||
BigDecimal b1 = BigDecimal.valueOf(v1); |
||||
BigDecimal b2 = BigDecimal.valueOf(v2); |
||||
return b1.divide(b2, 2, BigDecimal.ROUND_HALF_UP).doubleValue(); |
||||
} |
||||
|
||||
public static void main(String[] args) { |
||||
// System.out.println("args = " + div(39,64));
|
||||
System.out.println("args2 = " + div2(39,64)); |
||||
|
||||
System.out.println("args = " + mul(div2(39,64),new Double(2))); |
||||
} |
||||
} |
Loading…
Reference in new issue