如何在java中将带有美元符号的字符串数值转换为BigDecimal?

JNP*_*NPW 23 java string bigdecimal

我有一个String格式的美元金额.例如:String salePrice = $ 348.00.

但是,我想将此String值转换为BigDecimal值,但它在字符串中有一个美元符号.我尝试了下面的代码,但它无法正常工作.

BigDecimal sPrice = new BigDecimal(salePrice);
Run Code Online (Sandbox Code Playgroud)

我最终得到以下这个例外:

java.lang.NumberFormatException
    at java.math.BigDecimal.<init>(Unknown Source)
    at java.math.BigDecimal.<init>(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

Ran*_*Rag 40

BigDecimal的构造需要一个有效的数字串.

字符串表示由可选符号'+'('\ u002B')或' - '('\ u002D')组成,后跟一个零或更多十进制数字("整数")的序列,可选地后跟一个分数,可选地后跟指数.

String salePrice = "$348.00";
String price = salePrice.replace("$","");
BigDecimal sPrice = new BigDecimal(price);
System.out.println(sPrice);
Run Code Online (Sandbox Code Playgroud)

输出= 348.00

您还可以查看NumberFormat类.使用此课程,您可以设置相应的课程Locale.

String salePrice = "$123.45";
Locale locale = Locale.US;
Number number = NumberFormat.getCurrencyInstance(locale).parse(salePrice);
System.out.println(number);
Run Code Online (Sandbox Code Playgroud)

输出= 123.45


Ped*_*tic 8

首先删除美元符号($).

  • 这些天美元不是一个大小数 (6认同)