Mam kilka BigDecimal i uważam tylko 2 miejsca dziesiętne z nim więc obciąć go za pomocą:Formatowanie BigDecimal jako String z max 2 cyfr po przecinku, usuwając 0 na części dziesiętnych
bd = bd.setScale(2, BigDecimal.ROUND_DOWN)
Teraz chcę wydrukować go jako String ale usuwając część dziesiętną, jeśli jest 0, na przykład:
1.00 -> 1
1,50 -> 1,5
1.99 -> 1.99
Próbowałem użyć Formattera, formatter.format, ale zawsze otrzymuję 2 cyfry dziesiętne.
Jak mogę to zrobić? Może pracujesz na łańcuchu od bd.toPlainString()?
Jaki jest oczekiwany wynik dla tego programu. Mam takie same wymagania do końcowych zer po kropce dziesiętnej, ale kończące się zera jak **. 00 ** obcięcie w danych wyjściowych. –
@ParameshKorrakuti 'df.setMinimumFractionDigits (2)' działa poprawnie bez ustawień setScale i setGrouping i setMaxFrac. –
Format dziesiętny to NumberFormat w przebraniu. Użyj 'NumberFormat numberFormat = NumberFormat.getPercentInstance();' następnie 'numberFormat.setMinimumFractionDigits (2);' następnie 'String percent = numberFormat.format (yourBigDecimal);' –