• 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

  • 相关阅读:
    多重背包问题
    云里黑白第二十回——本游戏需要Windows10 1909版(组件) 18363或更新版本系统
    16:00面试,16:06就出来了,问的问题过于变态了。。。
    十大排序 —— 桶排序
    4. RxJava过滤操作符
    CentOS 7 安装 MySQL 5.7
    UE4和C++ 开发-C++与UMG的交互2(C++获取UMG的属性)
    PWR电源控制
    走进微软亚洲研究院随笔
    前端周刊第二十六期
  • 原文地址:https://blog.csdn.net/fivestar2009/article/details/125498507