单独的BigDecimal分数部分

时间:2014-09-03 07:29:09

标签: java bigdecimal

我需要将小数部分与BigDecimal分开并转换为Integer

例如:

1.05(BigDecimal) => 5(int)
1.30(BigDecimal) => 30(int)

注意:小数部分不会超过2位

3 个答案:

答案 0 :(得分:3)

试试这个:

int i = bigDecimal
    .minus(new BigDecimal(bigDecimal.intValue())
    .multiply(new BigDecimal(100))
    .intValue();

答案 1 :(得分:1)

也许有一种更简单的方法,但这有效:

BigDecimal a = new BigDecimal("1.05");
BigDecimal b = new BigDecimal("1.3");
System.out.println(a.movePointRight(2).intValue() % 100);
System.out.println(b.movePointRight(2).intValue() % 100);

>> 5
>> 30

答案 2 :(得分:0)

试试这段代码:

BigDecimal big = new BigDecimal("1.5");
BigDecimal fraction =big.remainder(BigDecimal.ONE);

System.out.println(fraction.multiply(new BigDecimal(10).pow(big.precision()-1)).intValue());