Java經典執行個體:比較浮點數

來源:互聯網
上載者:User

標籤:system   經典   created   mat   div   creat   nbsp   ide   span   

/** * 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);    }}

 

Java經典執行個體:比較浮點數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.