我有问题。在我的jsp页面中,我有一个接受货币价值的文本字段。当我输入66777764
之类的值时,只要出现验证错误,我的文本字段就会变为6.6777764E7
。我知道这不会影响数据库中保存的值,但我认为它会误导/混淆用户。请帮忙。提前谢谢。
答案 0 :(得分:8)
您似乎将自己的号码保留为double
,因此66777764
实际为66.777764.0
,并显示您所拥有的号码。
您可以使用DecimalFormat格式化数字的显示,例如:
double d = 1.234567;
DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(d)); // will print 1.23
这将在点(66777764.00
)后面显示2位数字,格式有很多选项,请查看信息文档。
答案 1 :(得分:6)
BigDecimal bd = new BigDecimal(inputVal);
System.out.println(bd);
答案 2 :(得分:5)
使用BigDecimal保留货币价值。
double d = 66777764d;
BigDecimal bd = new BigDecimal(d);
System.out.println(bd);
阅读the answer of this question以了解您应该使用BigDecimal的原因。