BigDecimal: .add niby tylko dodawanie, ale nie tylko, bo sprawdza dziwne wartości
No zobacz:
Jak widać, to jest dużo więcej niż a + b. To, co zwraca moją uwagę, to to, że jest tylko jedna wartość w parametrach, bo druga to ta, na której to jest wywoływane, bo to zawsze jest wywoływane na obiekcie.
Ciekawostka, że BigDecimali nie można zrobić tak po prostu a+b:
Nie wiedziałem tego do tej pory :)
public BigDecimal add(BigDecimal augend) {
if (this.intCompact != INFLATED) {
if ((augend.intCompact != INFLATED)) {
return add(this.intCompact, this.scale, augend.intCompact, augend.scale);
} else {
return add(this.intCompact, this.scale, augend.intVal, augend.scale);
}
} else {
if ((augend.intCompact != INFLATED)) {
return add(augend.intCompact, augend.scale, this.intVal, this.scale);
} else {
return add(this.intVal, this.scale, augend.intVal, augend.scale);
}
}
}
Jak widać, to jest dużo więcej niż a + b. To, co zwraca moją uwagę, to to, że jest tylko jedna wartość w parametrach, bo druga to ta, na której to jest wywoływane, bo to zawsze jest wywoływane na obiekcie.
Ciekawostka, że BigDecimali nie można zrobić tak po prostu a+b:
Nie wiedziałem tego do tej pory :)
Komentarze
Prześlij komentarz