簡體   English   中英

即使值相等,實際比較也會返回false

[英]jscience Real comparison returns false even though values are equal

這是我的代碼:

Real AB = adj[a].get(b);
System.out.println("AB " + AB);
Real AC = adj[a].get(c);
System.out.println("AC " + AC);
Real BC = adj[b].get(c);
System.out.println("BC " + BC);
System.out.println(AB.plus(BC));
System.out.println(AB.plus(BC).equals(AC));

這是輸出:

AB 2.2360679775
AC 6.7082039325
BC 4.4721359550
6.7082039325
false

即使數字相同,為什么它返回false? 我也嘗試過

System.out.println(AB.plus(BC).compareTo(AC) == 0);

同樣, false

Realequals()實現檢查相同的有效位,錯誤和指數。 而是使用approximates() ,“考慮到可能的錯誤(例如,數字錯誤)”。

附錄:關於浮點比較,另請參閱以下文章:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM