Trong java làm thế nào để tôi nhận được chữ số đầu tiên khác 0 của BigDecimal?Làm thế nào để có được chữ số đầu tiên khác 0 của một BigDecimal
Ví dụ:
0.001 => 1
0.02 => 2
987.654 => 9
Đối với số giữa 0 và 1 này sẽ làm việc:
bigDecimal.scaleByPowerOfTen(bigDecimal.precision()).setScale(0, RoundingMode.DOWN)
Đối với các số lớn hơn 1 này sẽ làm việc:
bigDecimal.scaleByPowerOfTen(1-bigDecimal.precision()).setScale(0, RoundingMode.DOWN)
Nhưng có một giải pháp, hoạt động cho bất kỳ số nào?
lẽ mất 'bigDecimal.toPlainString() 'và tìm điều đầu tiên mà không phải là một dấu chấm không hay. –
cách đặt nó vào một chuỗi, thay thế tất cả 0 và. không có gì, và bán phá giá đầu tiên? – ergonaut
@LucasRoss Tôi cũng sẽ phải chăm sóc "-" dấu hiệu, vv Và chuyển đổi sang chuỗi có vẻ giống như một "workaround", không giống như một "giải pháp" ... – slartidan