Pertimbangkan kelas tes sederhana:
import java.math.BigDecimal;
/**
* @author The Elite Gentleman
*
*/
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BigDecimal x = new BigDecimal("1");
BigDecimal y = new BigDecimal("1.00");
System.out.println(x.equals(y));
System.out.println(x.compareTo(y) == 0 ? "true": "false");
}
}
Anda dapat (secara sadar) mengatakan bahwa xitu sama dengan y(bukan referensi objek), tetapi ketika Anda menjalankan program, hasil berikut menunjukkan:
false
true
Pertanyaan: Apa perbedaan antara compareTo()dan equals()di dalam BigDecimalyang compareTodapat menentukan yang xsama dengan y?
PS: Saya melihat bahwa BigDecimal memiliki inflate()metode equals()metode. Sebenarnya apa yang inflate()dilakukan?
inflate(): ini bukan bagian dari API publik karena hanya memanipulasi representasi internal dan tidak memiliki efek yang terlihat ke "luar". Jadi, kecuali Anda benar-benar ingin mempelajari implementasiBigDecimalmendalam, saya sarankan Anda mengabaikan metode ini.