środa, 13 sierpnia 2008

testy java

Zawsze mnie zastanawiało, skąd się biorą podchwytliwe pytania dotyczące programowania w Javie. Czy wymyślają je programiści, na zasadzie "sztuka dla sztuki", czy pochodzą one z prawdziwych projektów. Moja zagadka pochodzi z życia.

Co będzie wynikiem wywołania funkcji:


public static void main(String[] args) {
BigDecimal arg1 = new BigDecimal("10");
BigDecimal arg2 = new BigDecimal("3");
System.out.println(arg1.divide(arg2).toPlainString());
}


a) na konsole zostanie wypisane: 3,333333333
b) na konsole zostanie wypisane: 3,33
c) na konsole zostanie wypisane: 3
d) zostanie rzucony wyjątek w linii System.out.println(arg1.divide(arg2).toPlainString());
e) na konsole zostanie wypisane: null

no i odpowiedź:
Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
następnym razem dzieląc obiekty klasy BigDecimal będę uważał.

Brak komentarzy: