gpt4 book ai didi

java - 格式化 BigDecimal 后出现 StringIndexOutOfBoundsException

转载 作者:行者123 更新时间:2023-12-02 01:18:50 26 4
gpt4 key购买 nike

在尝试检索不含美分的美元金额时,我们收到以下错误:

Caused by java.lang.StringIndexOutOfBoundsException length=6; regionStart=0; regionLength=-1

这是代码:

public static String findDollarAmount(@Nullable BigDecimal fullAmount) {
if (fullAmount == null || fullAmount.compareTo(BigDecimal.ZERO) == 0) {
return "0";
}

DecimalFormat df = new DecimalFormat("#,##0.00;-#,##0.00");

//This value is returned as some string value that doesn't contain a '.'
String amountStr = df.format(fullAmount);

//The crash happens on this line
return amountStr.substring(0, amountStr.indexOf('.'));
}

我们无法打印生产中的值,并且无法在测试期间重新创建此场景。任何帮助将不胜感激。

最佳答案

它可以是您的应用程序区域设置
如果应用程序的区域设置将小数分隔符“,”作为其货币表示,如 PT-BR (R$ 1.000,00) 中,执行时将导致异常。
另一方面,示例,将区域设置设置为 US Locale.setDefault(Locale.US) 将具有小数点分隔符“。”大约 1,000.00 美元,没问题。

关于java - 格式化 BigDecimal 后出现 StringIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58120786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com