package me.test.jdk.java.math; import java.math.BigDecimal; public class BigDecimalTest { public static void main(String[] args) throws InterruptedException { String numStr = null; BigDecimal num = null; // 精密度:数值中数字的个数,有效数字位数(从第一个非零数字开始,直到末尾,不含小数点) int precision; // 刻度、数值范围、小数点后数字位数 int scale; // 4,0 numStr = "8000"; num = new BigDecimal(numStr); scale = num.scale(); precision = num.precision(); System.out.printf("'%s' : (%d,%d) \n", numStr, precision, scale); // 7,5 numStr = "10.00010"; num = new BigDecimal(numStr); scale = num.scale(); precision = num.precision(); System.out.printf("'%s' : (%d,%d) \n", numStr, precision, scale); // 2,5 numStr = "000000000.00010"; num = new BigDecimal(numStr); scale = num.scale(); precision = num.precision(); System.out.printf("'%s' : (%d,%d) \n", numStr, precision, scale); } }