Java BigDecimal from String 没有小数位但假设最后两位数字为十进制

Gob*_*Ran 1 java string type-conversion bigdecimal

A have a String: "1234567" 我想将此字符串传输到具有以下格式的 BigDecimal: 12345.67 --> 最后两个数字应被视为小数位。

有什么方法可以解决这个问题,或者我是否必须使用资源消耗方式,例如:

String numberUnformated = 1234567;
BigDecimal number = new BigDecimal(amount.substring(0,amount.length()-2)+"."+amount.substring(amount.length()-2))
Run Code Online (Sandbox Code Playgroud)

谢谢

小智 6

你可以用

BigDecimal number = new BigDecimal("1234567") .movePointLeft(2):
Run Code Online (Sandbox Code Playgroud)

不要按照建议使用双精度数,因为您肯定会失去精度,而使用 BigDecimal 则不会。处理货币时这很重要。