我从 Money-Object 中得到了以下 BigDecimal:BigDecimal 49.99,我需要将其作为 Integer 4999,所以我要求的一切就是去掉分隔符。
我可以将这个 BigDecimal 作为字符串并删除分隔符并将其解析为整数,但我认为这不太漂亮。
BigDecimal bigPrice = moneyPrice.getValue();
Integer price = bigPrice.intValue();
仅使用此回复 49。
movePointRight(int n)
。
BigDecimal bd = new BigDecimal("398.0275");
System.out.println(bd.movePointRight(bd.scale()));
输出:
3980275
如果您想使用该号码,只需
bd=bd.movePointRight(bd.scale());
试试这个代码:
BigDecimal db = new BigDecimal("49.99");
// multiply with 10^scale ( in your case 2)
db = db.multiply(new BigDecimal(10).pow( db.scale()));
System.out.println(db.intValue());
如果它是货币并且始终为 2 dp,您可以将其乘以 100。但是,正如 Davio 评论的那样,您的代码应该清楚地说明为什么要这样做。
如果您想要转换,例如将 GB 英镑的价格转换为 GB 便士(一磅 100 便士),那么将其乘以 100 就是正确的做法。
无需对
BigDecimal
进行任何数学计算;您可以直接调用 myBigDecimal.unscaledValue()
来获取底层未缩放的 BigInteger
。