как конвертировать валютный формат в double в java

63
5

Я получаю значение в формировании валюты, но мне нужен только двойной формат.

String amt = txn.getAmount();
System.out.println("--amt--"+amt);//output:1010
double value = Double.parseDouble(amt);
System.out.println("---value---"+value);//output:1010.0
String ammount=NumberFormat.getCurrencyInstance().format(value);
System.out.println("--ammount--"+ammount);//output:Rs.1,010.00

Здесь я хочу Rs.1,010.00 до 1010.00

Любые ошибки в моем коде?

спросил(а) 2021-01-25T20:15:34+03:00 4 месяца, 4 недели назад
1
Решение
89

Я предполагаю, что вам не нужны данные о валюте. В этом случае используйте getNumberInstance() вместо getCurrencyInstance().

Использование:

NumberFormat nf = NumberFormat.getNumberInstance();
nf.setGroupingUsed(false);
nf.setMinimumFractionDigits(2);
String ammount= nf.format(value);

ответил(а) 2021-01-25T20:15:34+03:00 4 месяца, 4 недели назад
45

Перед печатью замените строку "Rs". с "", а также "," с "".

String replaceString1=amount.replace("Rs.","");
String replaceString2=amount.replace(",","");

Это способ справиться с этим делом. Надеюсь это поможет.

ответил(а) 2021-01-25T20:15:34+03:00 4 месяца, 4 недели назад
45

Попробуйте этот более чистый подход !.


      double d = 1010.00;
Locale uk = new Locale("en", "GB");
NumberFormat cf = NumberFormat.getCurrencyInstance(uk);
String s = cf.format(d);

System.out.println(s);

Number number = null;
try
{
number = cf.parse(s);
}
catch (ParseException e)
{
System.out.print(e);
}
double dClone = number.doubleValue();

ответил(а) 2021-01-25T20:15:34+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема