0

我在 J2EE(jsp,servlet) 中实现了一个发票应用程序,在完成我的程序和测试后,我注意到以下错误:我的 sql server table FACTURE contains: Price NUMERIC (6,2) the user enters 333.33 is good but WHENE HE输入 333333 是错误。sql server 中是否有任何其他类型允许我以这种方式输入数据而不会出现错误大多数情况下我想用十进制显示,我测试了 float 类型,但它不允许我在最后显示零。

4

2 回答 2

0

您需要将其格式化为字符串。查看NumberFormat或者如果您正在使用某些 Web 框架,则很可能有一些特定于框架的方式来执行此操作,例如<fmt:formatNumber/>JSP 或<f:convertNumber/>JSF 的标记。

更新

看来我误读了这个问题,我的道歉。你问的是验证数据。在这种情况下,您要么需要自己编写验证代码,然后根据验证逻辑确定是保留数据还是显示错误消息。同样,框架将具有使这更容易的设施。Primefaces 有一个整洁的<p:inputMask/>。对于 JSF,您将使用转换器和验证器的组合,请参阅以获得广泛的讨论。我确信其他 Web 框架也有类似的功能。

于 2013-08-15T13:14:09.027 回答
0

将其作为浮点数存储在数据库中,然后在显示值时使用 NumberFormat.getCurrencyInstance().format()。

于 2013-08-16T09:48:13.473 回答