解析小数

时间:2012-02-21 17:50:08

标签: java parsing decimal

我必须解析一个格式如下的字符串:“€15,10”作为小数,以便执行简单的计算。

然而,项目代码库对我来说是全新的。

我试过这个:

String[] strArray = PriceNew.split(" ");
PriceNew = strArray[1];

只是获取字符串的数字部分,但这不起作用。

我也试过

PriceNew = replace(PriceNew, '€ ', '');

但这也不起作用,因为字符编码完全关闭。欧元符号导致编译失败。

3 个答案:

答案 0 :(得分:0)

我会保持简单,

//Remove currency symbol
PriceNew.replace('€', '');
//Remove comma
PriceNew.replace(',', '');
//Remove spaces
PriceNew.trim();
//Cast to new float
float price = new Float(PriceNew);
//Retain decimal value
price /= 100;

答案 1 :(得分:0)

尝试用小数点替换逗号:

float number = new Float(PriceNew.split(" ")[1].replace(',','.'));

答案 2 :(得分:-1)

对于货币金额,您可能更喜欢使用BigDecimal而不是float或double来保持精度:

String s = "€ 15,10";
BigDecimal bd = new BigDecimal(s.substring(1).trim().replace(",", "."));
System.out.println(bd); // 15.10