Java BigDecimal删除小数和尾随数字

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

我试过了:

Math.Truncate(number) 

但不支持BigDecimal。

有任何想法吗?

非常感谢。

尝试number.toBigInteger().toString()

用这个。

 BigDecimal truncated= number.setScale(0,BigDecimal.ROUND_DOWN); 

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

这是我发现解决此问题的最优雅方式:

 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; } 
 private void showDoubleNo(double n) { double num = n; int decimalPlace = 2; BigDecimal bd = new BigDecimal(num); bd = bd.setScale(decimalPlace,BigDecimal.ROUND_UP); System.out.println("Point is "+bd); } 
 public static String convertBigDecimalToString(BigDecimal bg) { System.out.println("Big Decimal Value before its convertion :" + bg.setScale(2, BigDecimal.ROUND_HALF_UP)); String bigDecStringValue = bg.setScale(0,BigDecimal.ROUND_HALF_UP).toPlainString(); System.out.println("Big Decimal String Value after removing Decimal places is :" + bigDecStringValue); return bigDecStringValue; } 

请注意:我使用了’BigDecimal.ROUND_HALF_UP’,只是为了确保舍入模式向“最近邻居”舍入,除非两个邻居都是等距的