Faktycznie, Znalazłem możliwe rozwiązanieDlaczego BigDecimal ("5,50") nie jest równy BigDecimal ("5,5") i jak obejść ten problem?
//returns true
new BigDecimal ("5.50").doubleValue() == new BigDecimal("5.5").doubleValue()
oczywiście, można go poprawić coś podobnego Math.abs (v1 - v2) < EPS
dokonać porównania bardziej wytrzymałe, ale pytanie brzmi, czy tej techniki dopuszczalne lub tam jest lepszym rozwiązaniem?
Jeśli ktoś wie, dlaczego projektanci java zdecydowali się na wdrożenie w ten sposób równań BigDecimal, byłoby to interesujące przeczytać.
Jeśli BigDecimal obiekty są gwarancją zawsze reprezentowalna przez deblu, to nie powinno być przy użyciu BigDecimal tak. Jeśli nie, to ta metoda zakończy się niepowodzeniem. – DJClayworth
Złe rozwiązanie. Jeśli liczba podwójna jest odpowiednia dla twojego programu, używaj podwójnych. Jeśli BigDecimals są odpowiednie, użyj BigDecimals. Prawie nigdy nie jest użyteczne konwersja w tę iz powrotem. – Jay
@DJClayworth: gdzie widzisz etykietę "edytowaną"? – Roman