Basit test sınıfını düşünün:
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");
}
}
Bunun (bilinçli olarak) bunun x
eşit olduğunu y
(nesne başvurusu değil ) diyebilirsiniz , ancak programı çalıştırdığınızda aşağıdaki sonuç gösterilir:
false
true
Soru: arasındaki fark nedir compareTo()
ve equals()
de BigDecimal
o compareTo
olduğunu belirleyebilir x
eşittir y
?
Not: BigDecimal'ın inflate()
yöntemde bir yöntemi olduğunu görüyorum equals()
. inflate()
Aslında ne yapar ?
inflate()
: herkese açık API'nın bir parçası değildir, çünkü yalnızca dahili temsili manipüle eder ve "dış" için görünür bir etkisi yoktur. Bu yüzden, gerçektenBigDecimal
derinlemesine uygulamayı incelemek istemiyorsanız , bu yöntemi görmezden gelmenizi öneririm.