Разбор десятичной дроби - PullRequest
       19

Разбор десятичной дроби

1 голос
/ 21 февраля 2012

Я должен проанализировать строку, отформатированную так: «€ 15,10» как десятичное число, чтобы выполнить простой расчет.

Однако кодовая база проекта для меня совершенно новая.

Я пробовал это:

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

Просто чтобы получить числовую часть строки, но это не сработало.

Я тоже пытался

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

Но это тоже не сработало, потому что кодировка символов полностью отключена. Знак евро приводит к сбою компиляции.

Ответы [ 3 ]

0 голосов
/ 21 февраля 2012

Попробуйте заменить запятую на десятичную точку:

float number = new Float(PriceNew.split(" ")[1].replace(',','.'));
0 голосов
/ 21 февраля 2012

Для денежных сумм вы можете предпочесть использовать BigDecimal вместо float или double, чтобы сохранить точность:

String s = "€ 15,10";
BigDecimal bd = new BigDecimal(s.substring(1).trim().replace(",", "."));
System.out.println(bd); // 15.10
0 голосов
/ 21 февраля 2012

Я бы сказал очень просто,

//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;
...