Как преобразовать значение String в значение Double или Int в Java? - PullRequest
0 голосов
/ 11 декабря 2019

У меня проблема. У меня есть String со значением "$615.00", и я хочу преобразовать его в double или int. Я пробовал следующий код, но есть ошибка:

String one = "$615.00";
String two = "$15.00";
double newone = Double.parseDouble( one );
double newtwo = Double.parseDouble( two );

System.out.println(newone-newtwo);

Ошибка

Exception in thread "main" java.lang.NumberFormatException: For input string: "$615.00"

Но я добавил NumberFormatException для метода и все еще получил ошибку.

Ответы [ 2 ]

1 голос
/ 11 декабря 2019

Как уже говорили другие в комментариях, NumberFormatException происходит, потому что вы пытаетесь выполнить parseDouble без удаления $ из числа.

В этом случае вы можете использовать substring () чтобы получить все после первого символа:

String one = "$615.00";
String two = "$15.00";

double newone = Double.parseDouble( one.substring(1) );
double newtwo = Double.parseDouble( two.substring(1) );

System.out.println(newone-newtwo);

Результат в 600,00

0 голосов
/ 11 декабря 2019

Используйте регулярное выражение для удаления символов, таких как "$" (другими словами, все символы, кроме цифр и точек)

String one = "$615.03";
String oneValue = one.replaceAll("[^0-9.]", "");
System.out.println(oneValue); // Output is 615.03, which is correctly parsed by parseDobule()
...