• java 数字计算不能使用float


    java 数字计算不能使用float,否则有问题0.7F ----会展示成0.699999999造成了数字加减异常,需要使用BigDecimal

    /**
         * * 两个Double数相加 *
         *
         * @param v1
         * *
         * @param v2
         * *
         * @return Double
         */
        public static Double doubleAdd(Double v1, Double v2) {
            BigDecimal b1 = new BigDecimal(v1.toString());
            BigDecimal b2 = new BigDecimal(v2.toString());
            return new Double(b1.add(b2).doubleValue());
        }

        /**
         * * 两个Double数相减 * v1 减 v2
         *
         * @param v1
         * *
         * @param v2
         * *
         * @return Double
         */
        public static Double doubleSub(Double v1, Double v2) {
            BigDecimal b1 = new BigDecimal(v1.toString());
            BigDecimal b2 = new BigDecimal(v2.toString());
            return new Double(b1.subtract(b2).doubleValue());
        }
        
        public static Double doubleAdd(float v1, float v2) {
            BigDecimal b1 = new BigDecimal(v1+"");
            BigDecimal b2 = new BigDecimal(v2+"");
            return new Double(b1.add(b2).doubleValue());
        }
        
        public static Double doubleSub(float v1, float v2) {
            BigDecimal b1 = new BigDecimal(v1+"");
            BigDecimal b2 = new BigDecimal(v2+"");
            return new Double(b1.subtract(b2).doubleValue());
        }

    不能使用    BigDecimal b1 = new BigDecimal(float);//这也会造成0.7---0.69999

    需要flaot转string,再转BigDecimal

  • 相关阅读:
    Python算法题2023 输出123456789到98765432中完全不包含2023的数有多少
    Python 06 之面向对象基础
    MySQL笔记——索引
    Vue解构工作原理
    phar反序列化
    练[GYCTF2020]EasyThinking
    信息系统概述-生命周期-开发方法
    MySQL中多表查询、表连接(内连接和外连接)
    别在傻傻的封装对象返回了,来看看这篇SpringBoot返回结果统一包装
    触发迅雷下载
  • 原文地址:https://blog.csdn.net/fivestar2009/article/details/125498507