在BigDecimal中提取数字十进制

Meh*_*hdi 7 java bigdecimal

如何使用BigDecimal提取小数点后的数字?

BigDecimal d = BigDecimal.valueOf(1548.5649);

结果:仅提取:5649

dog*_*ane 10

尝试:

BigDecimal d = BigDecimal.valueOf(1548.5649);
BigDecimal result = d.subtract(d.setScale(0, RoundingMode.FLOOR)).movePointRight(d.scale());      
System.out.println(result);
Run Code Online (Sandbox Code Playgroud)

打印:

5649
Run Code Online (Sandbox Code Playgroud)


Nik*_*zov 6

试试BigDecimal.remainder:

BigDecimal d = BigDecimal.valueOf(1548.5649); 
BigDecimal fraction = d.remainder(BigDecimal.ONE);
System.out.println(fraction);
// Outputs 0.5649
Run Code Online (Sandbox Code Playgroud)