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