Tôi cần xóa các số 0 theo sau từ BigDecimal
cùng với RoundingMode.HALF_UP
. Ví dụ,Xóa các số không theo sau từ BigDecimal trong Java
Value Output
15.3456 <=> 15.35
15.999 <=> 16 //No trailing zeros.
15.99 <=> 15.99
15.0051 <=> 15.01
15.0001 <=> 15 //No trailing zeros.
15.000000<=> 15 //No trailing zeros.
15.00 <=> 15 //No trailing zeros.
stripTrailingZeros()
công trình nhưng nó sẽ trả về ký hiệu khoa học trong tình huống như thế,
new BigDecimal("600.0").setScale(2, RoundingMode.HALF_UP).stripTrailingZeros();
Trong trường hợp này, nó sẽ trả 6E+2
. Tôi cần điều này trong một trình biến đổi tùy chỉnh trong JSF, nơi nó có thể là xấu cho người dùng cuối. Vì vậy, cách thích hợp để làm điều này là gì?
'String.format()' là giải pháp chung nhất. – gaborsch
có, tôi cũng nên chọn phương pháp này. – KarelG
Một số như '999,99' trả về' 1000' nhưng nó trả về cùng '999,99' với' .stripTrailingZeros(). ToPlainString() 'như nó phải làm. Vì vậy, nó không xuất hiện để được đại diện chính xác như 'BigDecimal'. Tui bỏ lỡ điều gì vậy? – Tiny