将字符串转换为 BigDecimal 并添加逗号分隔符

Convert string to BigDecimal and add Comma Delimiter

我从文件中读取了一个字符串。此字符串应转换为 BigDecimal。一旦它变成 bigdecimal,我就会得到这样的东西:000000000103000000。第一个数字之前的所有 0 都应格式化掉,最后两个 00 应该是 .00 我将如何完成此操作?例如。 (000000004711) -> (47.11)

代码:

BigDecimal amount;
String line = "30000000000000010300000000000000000000009876543210";
final NumberFormat formatter = NumberFormat.getInstance(Locale.FRANCE);/* , instead of . */

while((line = inputStream.readLine()) != null) {

    amount = BigDecimal.valueOf(formatter.parse( 
    line.substring(2,24).replaceFirst("^0+(?!$)", "")).longValue());
}

您不需要删除第一个零,当您将其转换为 BigDecimal 时将被忽略,您只需要将点放在最后两位数字之前:

String line = "30000000000000010300000000000000000000009876543210";
if (line.length() >= 22) {
    BigDecimal amount = new BigDecimal(
            line.substring(2, 24).replaceFirst("^(.*)(..)$", ".")
    );
    System.out.println(amount);
}

输出

30000000000000010300000000000000000000009876543210 -> 1030000.00