Ошибка при передаче значения входного текста в DecimalFormat - PullRequest
0 голосов
/ 20 ноября 2018

Я хочу передать введенное текстовое значение в десятичном формате.Сохранить значение в виде десятичного формата в базе данных.но я получил ошибку ниже кода.может любой объяснить ошибку кода.

DecimalFormat decimalformat = new DecimalFormat("#.00");
String dp = decimalformat.format(mf.getParameter("pprice"));
product.setPrice((Double.parseDouble(dp)));

java.lang.IllegalArgumentException: не может отформатировать данный объект как число в java.text.DecimalFormat.format (DecimalFormat.java:507)в java.text.Format.format (Format.java:157) в Servlet.product.save_product.doPost (save_product.java:66)

<input type="text" class="form-control" placeholder="0.00" name="pprice"/>

1 Ответ

0 голосов
/ 20 ноября 2018

Здесь есть пара вопросов.

  1. Как уже упоминалось в комментариях, вы не можете предоставить методу DecimalFormat.format значение String.Это должен быть подтип Number.Эту проблему можно решить, проанализировав ответ mf.getParameter("pprice")) на удвоение.Например: decimalformat.format(Double.parseDouble(mf.getParameter("pprice")));
  2. Нет никакого смысла делать это вообще, когда вы потом конвертируете его обратно в Double.С тем же успехом вы можете просто сделать product.setPrice(Double.parseDouble(mf.getParameter("pprice")));.В любом случае форматирование потеряно.
...