Java 将输入文本值传递给DecimalFormat时出错
我想把输入的文本值转换成十进制格式。将值保存为数据库中的十进制格式。但代码下面有个错误。谁能解释一下代码的错误吗Java 将输入文本值传递给DecimalFormat时出错,java,string,decimalformat,Java,String,Decimalformat,我想把输入的文本值转换成十进制格式。将值保存为数据库中的十进制格式。但代码下面有个错误。谁能解释一下代码的错误吗 DecimalFormat decimalformat = new DecimalFormat("#.00"); String dp = decimalformat.format(mf.getParameter("pprice")); product.setPrice((Double.parseDouble(dp))); java.lang.IllegalArgumentExcep
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)位于
save_product.doPost(save_product.java:66)
这里有几个问题
DecimalFormat.format
方法提供String
值。它必须是Number
的子类型。这可以通过将mf.getParameter(“pprice”)
的响应解析为double来解决。这样地:
decimalformat.format(Double.parseDouble(mf.getParameter(“pprice”))代码>
product.setPrice(Double.parseDouble(mf.getParameter(“pprice”))代码>。无论如何,格式都会丢失
这里有几个问题
DecimalFormat.format
方法提供String
值。它必须是Number
的子类型。这可以通过将mf.getParameter(“pprice”)
的响应解析为double来解决。这样地:
decimalformat.format(Double.parseDouble(mf.getParameter(“pprice”))代码>
product.setPrice(Double.parseDouble(mf.getParameter(“pprice”))代码>。无论如何,格式都会丢失
mf.getParameter(“pprice”)
究竟返回什么?它返回字符串值format方法不支持string。它需要是Number的一个实例。查看mf.getParameter(“pprice”)
究竟返回什么?它返回字符串值format方法不支持string。它需要是Number的一个实例。看见
<input type="text" class="form-control" placeholder="0.00" name="pprice"/>