Что было бы хорошим способом обрезать более двух конечных нулей для BigDecimal
Таким образом, 1,2200 напечатает 1,22, а 1,0000 напечатает 1,00.
Изменить А также вернуть 1.222200 как 1.2222 и 1.220000001 как 1.220000001 и т. д. Поэтому, игнорируя первые два нуля, я хочу обрезать все входящие 0 и не обрезать ненулевые значения
Одним из способов может быть умножение, затем применение встроенных конечных нулей обрезки, а затем деление на 100. Это может быть проблематично с крайними случаями, но значения в моей проблеме основаны на валюте и никогда не превышают границы, установленные Java (иначе это означает, что мое программное обеспечение работает с ставками, исчисляемыми миллионами долларов)
Уродливое решение выглядит следующим образом
System.out.println(((new BigDecimal("1.230223000")
.multiply(new BigDecimal("100.0"))
.stripTrailingZeros()).divide(new BigDecimal("100.0"))));
1.230223000
можно превратить в1.230223
, но1.0000
должно печатать1.00
? - person Joachim Sauer   schedule 30.05.2011