- import java.math.BigDecimal;
- 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 new Double(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 mul(Double v1, Double v2) {
- BigDecimal b1 = new BigDecimal(v1.toString());
- BigDecimal b2 = new BigDecimal(v2.toString());
- return new Double(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 new Double(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 new Double(b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue());
- }
- }
double类型数据运算
最新推荐文章于 2022-08-03 18:30:21 发布