java - 将输入文本值传递给 DecimalFormat 时出错
问题描述
我想将输入文本值传递为十进制格式。将值以十进制格式保存在数据库中。但我在代码下方出现错误。任何人都可以解释代码的错误。
DecimalFormat decimalformat = new DecimalFormat("#.00");
String dp = decimalformat.format(mf.getParameter("pprice"));
product.setPrice((Double.parseDouble(dp)));
java.lang.IllegalArgumentException:无法在 Servlet.product.save_product 的 java.text.Format.format(Format.java:157) 的 java.text.DecimalFormat.format(DecimalFormat.java:507) 处将给定对象格式化为数字。 doPost(save_product.java:66)
<input type="text" class="form-control" placeholder="0.00" name="pprice"/>
解决方案
这里有几个问题。
- 如评论中所述,您不能为该
DecimalFormat.format
方法提供String
值。它必须是 的子类型Number
。这可以通过解析对mf.getParameter("pprice"))
双精度的响应来解决。像这样:decimalformat.format(Double.parseDouble(mf.getParameter("pprice")));
- 当您之后将其转换回 Double 时,这样做真的没有任何意义。你不妨这样做
product.setPrice(Double.parseDouble(mf.getParameter("pprice")));
。无论如何,格式都会丢失。
推荐阅读
- c - 无法在centos 7上安装mysql2并出现libmysqlclient错误
- c# - 如何使用直线 C# 在基于 Web 的机器人中获取用户当前位置
- python - FileNotFoundError: [WinError 2] 系统找不到指定的文件 / tempfile
- python - 在多处理中按模块划分行
- specflow - 无法在 specflow 2.1.0 中添加或修改标签
- python - 如何使用 Selenium 和 Python 通过“onclick”找到并单击按钮?
- shell - windows10上gsh.exe下nmake的奇怪行为
- javascript - 带有搜索选项的jquery tablesorter在chrome中不起作用
- postgresql - 在 PostgreSQL 中处理子选择
- character-encoding - 在 powerdesigner 中显示描述