2012-07-04 2 views
3

Я тестирую с помощью процедуры JUnit PLSQL, чтобы он «равнялся» в Java/Hibernate. Один результат в PLSQL - 0, но результат Java - 0.0000, я попытался использовать функцию под названием stripTrailingZeros, но не работал. Я думаю, что для практических целей есть то же самое, но не совсем.BigDecimal 0.000 to 0

EDIT Я хочу, чтобы удалить нули, которые не имеют числового значения, например

2,3400> 2,34

я могу сделать это с stripTrailingZeros, но когда я применяю эту функцию через вернуть ту же вещь:

0,0000> 0,0000

+1

В чем ваш вопрос? –

+0

hmmm convert bigdecimal 0.0000 to bigdecimal 0 – osdamv

ответ

5

Вы делаете правильные вещи, но реализация этого метода является неправильным. Другими словами, Java нарушена. There is a bug report about this issue, но он пока не решен. A Потребовано: Временное решение включено в ссылку. В принципе, сделайте явный compareTo с new BigDecimal("0"), который работает правильно.

+0

Похоже, что это уже давно поймали. Спасибо за головы. – keaplogik

3
BigDecimal bd1 = new BigDecimal("0.0000"); 
System.out.println(bd1); // -> 0.0000 
BigDecimal bd2 = bd1.setScale(0); 
System.out.println(bd2); // -> 0 
System.out.println(bd1.equals(bd2)); // -> false 
System.out.println(bd1.compareTo(bd2) == 0); // -> true 
Смежные вопросы