字符串转换为BigDecimal格式

huangapple go评论82阅读模式
英文:

Conversion of String to BigDecimal format

问题

我有一个类似于"$1,234.00"的字符串。我需要将其转换为BigDecimal值。不能使用普通的BigDecimal转换方法,因为会抛出NumberFormatException异常。有没有一种方法可以实现这个?

英文:

I have a String which is like "$1,234.00". I need to convert it into a BigDecimal value. Cannot do it utilising normal BigDecimal conversion methods as it throws NumberFormatException. Is there a way it can be achieved?

答案1

得分: 1

"$1,234.00" 是一个格式化的数值文本,因此您需要使用NumberFormat来解析这个数字。

特别地,您需要一个DecimalFormat,这样您就可以调用setParseBigDecimal(true)方法,因为您希望得到一个BigDecimal作为结果,否则它可能会返回一个Double

DecimalFormat format = new DecimalFormat("¤#,##0.00", DecimalFormatSymbols.getInstance(Locale.US));
format.setParseBigDecimal(true);
BigDecimal number = (BigDecimal) format.parse(input);
英文:

"$1,234.00" is a formatted numeric text, so you need to parse the number using a NumberFormat.

In particular, you need a DecimalFormat so you can call the setParseBigDecimal(true) method, since you want a BigDecimal as the result, otherwise it would likely have returned a Double.

DecimalFormat format = new DecimalFormat("¤#,##0.00", DecimalFormatSymbols.getInstance(Locale.US));
format.setParseBigDecimal(true);
BigDecimal number = (BigDecimal) format.parse(input);

huangapple
  • 本文由 发表于 2020年8月30日 23:30:31
  • 转载请务必保留本文链接:https://go.coder-hub.com/63659062.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定