Я должен показать значение BigDecimal
как целое, если у него нет десятичной части.
Мое решение, как правило, работает, но проблема в том, что bigDecResult
получает значение с наименьшими нулями после точки, например, 0.0000
.
BigDecimal bigDecResult = new BigDecimal("0.0000");
if (bigDecResult.remainder(BigDecimal.ONE).equals(0)) {
System.out.println(Integer.toString(bigDecResult.intValue()));
} else {
System.out.println(bigDecResult.toString());
}
Как я могу получить 0
в случае bigDecResult = new BigDecimal("0.0000")
?
BigDecimal bd = new BigDecimal("0.0000");
if (bd.doubleValue() % 1 == 0.0 ){
System.out.println(bd.setScale(0));
// You can also convert to Integer:
// Integer response = bd.setScale(0).toBigInteger().intValue();
} else {
System.out.println(bd.setScale(4));
}
.stripTrailingZeros()
, к сожалению, он.stripTrailingZeros()
для всех версий JDK 7 и менее (к счастью, это исправлено в Java 8)