[問題] 有關comparable 中判斷式的問題?

看板java作者 (千里之外)時間14年前 (2011/09/06 11:19), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
import java.util.*; class Book implements Comparable<Book>{ String name; Double price; public Book(String s, double p){ this.name=s; this.price=p; } public int compareTo(Book obj){ -> if((this.price) == (obj.price) ){ -> // if((this.price - obj.price) == 0){ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 上下兩行的比較? 有不同嗎? 為何上行印出的資料少一筆呢? return this.name.compareTo(obj.name); } return this.price.compareTo(obj.price); } public void show(){ System.out.println(name); System.out.println(price); } } class TreeSetEx{ public static void main(String[] args){ TreeSet<Book> tset = new TreeSet<Book>(); Book book2 = new Book("SCJP認証手冊",600.0); Book book3 = new Book("VB2008程式設計",600.0); Book book1 = new Book("Java程式手冊",580.0); tset.add(book1); tset.add(book2); tset.add(book3); System.out.println("書籍資訊如下:"); System.out.println("---------------------------"); for(Book b : tset){ b.show(); System.out.println("---------------------------"); } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.46.151.172

09/06 17:48, , 1F
我猜跟浮點數精確度有關?
09/06 17:48, 1F

09/06 21:07, , 2F
樓上正解!
09/06 21:07, 2F
文章代碼(AID): #1EPP4gYG (java)