java - 解析 BRL 货币值字符串以加倍

标签 java string parsing format currency

我正在尝试解析以下字符串:“59000,00”

在巴西,逗号用于表示小数位,小数点用作分隔千位的符号。

我正在尝试做的事情:

final String price = "59000,00";
// LocaleUtils.getLocale returns new Locale("pt", "BR")
final NumberFormat numberFormat = NumberFormat.getCurrencyInstance(LocaleUtils.getLocale());

try {
  final double d = numberFormat.parse(price).doubleValue();
  // do stuff
} catch (ParseException e) {
  // do stuff
}

但是,我得到了 ParseException。为什么会这样?

java.text.ParseException:无法解析的数字:“59000,00”(在偏移量 8 处)

最佳答案

您可以使用 GERMANY Locale,因为它使用逗号作为小数点分隔符,如 here in the documentation 所述.像这样:

NumberFormat nf = NumberFormat.getInstance(Locale.GERMANY);
double df = nf.parse(price).doubleValue();

关于java - 解析 BRL 货币值字符串以加倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49517897/

相关文章:

java - Jackson 如何设置 JSON 解析的时区?

math - 计算一串简单的数学表达式

javascript regex - 替换字符串停止词

c - 如何在 C 中浏览任意长度的字符串数组?

java - 如何在JAVA邮件API中从特定字符串位置读取邮件并获取数据

python - Beautiful Soup 为特定的 div 找到 child

eclipse - Eclipse 中的离线 Java API 文档?

java - GoogleTransport 类问题

java - 如何在 Android 中获取类(非 Activity )的上下文?

java - 使用 IElementChangedListener 获取更改的 java 文件的路径