• Java经典实例:比较浮点数


    /**
     * Created by Frank
     * 比较浮点数
     */
    public class FloatCmp {
        // 公差
        private final static Double EPSILON = 0.0000001;
    
        public static void main(String[] args) {
            double da = 3 * .3333333333;
            double db = 0.99999992857;
    
            // 基本类型可以优先使用==进行比较
            if (da == db) {
                System.out.println("Java considers " + da + "==" + db);
            }
            // 使用重载的equals方法
            else if (equals(da, db, 0.0000001)) {
                System.out.println("Equal within epsilon " + EPSILON);
            } else {
                System.out.println(da + "!=" + db);
            }
        }
    
        /**
         * 在给定精度范围内比较2个double类型值
         *
         * @param a   参数a
         * @param b   参数b
         * @param eps 给定的公差值
         * @return 比较结果
         */
        public static boolean equals(double a, double b, double eps) {
            return a == b || Math.abs(a - b) < eps;
        }
    
        /**
         * 在缺省的误差范围内比较2个double类型值
         *
         * @param a 参数a
         * @param b 参数b
         * @return 比较结果
         */
        public static boolean equals(double a, double b) {
            return equals(a, b, EPSILON);
        }
    }
  • 相关阅读:
    leetcode
    leetcode
    leetcode
    leetcode
    Postman
    Fiddler抓百度和bing搜索包
    Jmeter脚本录制
    Android Studio使用Maven国内镜像
    Open Live Writer
    PureXXX使用手记
  • 原文地址:https://www.cnblogs.com/frankyou/p/6051977.html
Copyright © 2020-2023  润新知