Java BigDecimal删除小数和尾随数字

Zer*_*ool 18 java decimal bigdecimal

我是Java的新手并尝试使用BigDecimal(例如99999999.99)并将其转换为字符串但没有小数位和尾随数字.另外,我不想要数字中的逗号,也不需要舍入.

我试过了:

Math.Truncate(number)
Run Code Online (Sandbox Code Playgroud)

但不支持BigDecimal.

有任何想法吗?

非常感谢.

S.L*_*ott 44

用这个.

BigDecimal truncated= number.setScale(0,BigDecimal.ROUND_DOWN);
Run Code Online (Sandbox Code Playgroud)


Dav*_*d Z 41

尝试 number.toBigInteger().toString()

  • 你改变了数据类型 (3认同)

ZZ *_*der 5

没有分数的BigDecimal是BigInteger.你为什么不只使用BigInteger?


小智 5

这是我发现解决这个问题的最优雅的方法:

public static String convertDecimalToString (BigDecimal num){
    String ret = null;
    try {
        ret = num.toBigIntegerExact().toString();
    } catch (ArithmeticException e){
        num = num.setScale(2,BigDecimal.ROUND_UP); 
        ret = num.toPlainString();
    }
    return ret;
}
Run Code Online (Sandbox Code Playgroud)