| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- package com.cnd3b.utility;
- import java.math.BigDecimal;
- public class Math {
- /**
- * 加法
- *
- * @param arg0
- * @param arg1
- * @return
- */
- public static double add(double arg0, double arg1) {
- BigDecimal b1 = new BigDecimal(Double.toString(arg0));
- BigDecimal b2 = new BigDecimal(Double.toString(arg1));
- return b1.add(b2).doubleValue();
- }
- /**
- * 减法
- *
- * @param arg0 被减数
- * @param arg1 减数
- * @return
- */
- public static double sub(double arg0, double arg1) {
- BigDecimal b1 = new BigDecimal(Double.toString(arg0));
- BigDecimal b2 = new BigDecimal(Double.toString(arg1));
- return b1.subtract(b2).doubleValue();
- }
- /**
- * 乘法
- *
- * @param arg0
- * @param arg1
- * @return
- */
- public static double mul(double arg0, double arg1) {
- BigDecimal b1 = new BigDecimal(Double.toString(arg0));
- BigDecimal b2 = new BigDecimal(Double.toString(arg1));
- return b1.multiply(b2).doubleValue();
- }
- /**
- * 乘法
- *
- * @param arg0
- * @param arg1
- * @return
- */
- public static double mul(double arg0, double arg1, int scale) {
- BigDecimal b1 = new BigDecimal(Double.toString(arg0));
- BigDecimal b2 = new BigDecimal(Double.toString(arg1));
- return round(b1.multiply(b2).doubleValue(), scale);
- }
- /**
- * 除法,默认保留6位
- * @param arg0
- * @param arg1
- * @return
- */
- public static double div(double arg0, double arg1) {
- return div(arg0, arg1, 6);
- }
- /**
- * 除法
- *
- * @param arg0 被除数
- * @param arg1 除数
- * @param scale 需要精确到小数点以后几位
- * @return
- */
- public static double div(double arg0, double arg1, int scale) {
- if (scale < 0) {
- throw new IllegalArgumentException("精度不能小于0");
- }
- BigDecimal b1 = new BigDecimal(Double.toString(arg0));
- BigDecimal b2 = new BigDecimal(Double.toString(arg1));
- return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
- }
- /**
- * 四舍五入处理。
- *
- * @param arg0 需要四舍五入的数字
- * @param scale 小数点后保留几位
- * @return 四舍五入后的结果
- */
- public static double round(double arg0, int scale) {
- if (scale < 0) {
- throw new IllegalArgumentException("保留位数不能小于0");
- }
- BigDecimal b = new BigDecimal(Double.toString(arg0));
- BigDecimal one = new BigDecimal("1");
- return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
- }
- /**
- * 获取随机数
- * @return
- */
- public static double random() {
- return java.lang.Math.random();
- }
- }
|