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 x
itu 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 BigDecimal
yang compareTo
dapat menentukan yang x
sama 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 implementasiBigDecimal
mendalam, saya sarankan Anda mengabaikan metode ini.