字符串中的Java BigDecimal没有小数位,但最后两位数字为十进制

时间:2016-08-16 16:22:21

标签: java string type-conversion bigdecimal

A有一个字符串:“1234567” 我想使用以下格式将此String传输到BigDecimal: 12345.67 - >最后两个digets应被视为小数位。

是否有任何方法,或者我必须使用资源消耗方式,如:

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

谢谢

2 个答案:

答案 0 :(得分:4)

您可以使用

BigDecimal number = new BigDecimal("1234567") .movePointLeft(2):

不建议使用双打,因为你肯定会失去精确度而且你不会使用BigDecimal。使用货币时非常重要。

答案 1 :(得分:1)

你可以将它除以100:

BigDecimal number = new BigDecimal("1234567")
    .divide(BigDecimal.valueOf(100L));