fork download
  1. import java.math.BigDecimal;
  2.  
  3. class DecimalTest {
  4.  
  5. static int integerDigits(BigDecimal n) {
  6. System.out.println("precision: " + n.precision() + " - scale: " + n.scale());
  7. return n.signum() == 0 ? 1 : n.precision() - n.scale();
  8. }
  9.  
  10. static void check(BigDecimal n) {
  11. System.out.println(n + " : " + integerDigits(n));
  12. }
  13.  
  14. static public void main(String[] args) {
  15. check(new BigDecimal("999999.99999"));
  16. check(new BigDecimal("999999.999"));
  17. check(new BigDecimal("999999.9"));
  18. check(new BigDecimal("999999"));
  19. check(new BigDecimal("-999999"));
  20. check(new BigDecimal("100"));
  21. check(new BigDecimal("100.000"));
  22. check(new BigDecimal("1234567890"));
  23. check(new BigDecimal("0"));
  24. check(new BigDecimal("0.0000"));
  25. }
  26. }
  27.  
Success #stdin #stdout 0.23s 44832KB
stdin
Standard input is empty
stdout
precision: 11 - scale: 5
999999.99999 : 6
precision: 9 - scale: 3
999999.999 : 6
precision: 7 - scale: 1
999999.9 : 6
precision: 6 - scale: 0
999999 : 6
precision: 6 - scale: 0
-999999 : 6
precision: 3 - scale: 0
100 : 3
precision: 6 - scale: 3
100.000 : 3
precision: 10 - scale: 0
1234567890 : 10
precision: 1 - scale: 0
0 : 1
precision: 1 - scale: 4
0.0000 : 1