6

我有个问题。在我的 jsp 页面中,我有一个接受货币价值的文本字段。当我输入一个值时,只要出现验证错误,66777764它就会出现在我的文本字段中。6.6777764E7我知道这不会影响保存在数据库中的值,但我认为它会误导/混淆用户。请帮忙。提前致谢。

4

3 回答 3

9

看起来你保持你的号码实际上是double这样,它显示你得到了什么。6677776466.777764.0

您可以根据需要使用DecimalFormat来格式化数字的显示,例如:

double d = 1.234567;
DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(d)); // will print 1.23

这将在点 ( 66777764.00) 后显示 2 位数字,格式有很多选项,请查看文档以获取信息。

于 2012-12-19T07:49:15.350 回答
7

跟随BigDecimal

BigDecimal bd = new BigDecimal(inputVal);
System.out.println(bd);
于 2012-12-19T07:56:57.027 回答
6

使用BigDecimal保持货币价值。

double d = 66777764d;
BigDecimal bd = new BigDecimal(d);
System.out.println(bd);

阅读这个问题的答案,了解为什么应该使用 BigDecimal。

于 2012-12-19T07:52:30.077 回答