关于DOUBLE类型不显示科学计数法!!

zeaway 2011-03-07 03:00:15
假如有一个entity对象,其中很多属性的类型都是DOUBLE,一但位数很多时,页面显示就会以科学计数法显示。
现在我不想用科学计数法显示,也不想必变他的类型,应该怎么办呢?
看了网上很多办法都是将其转成STRING类型 就是用DecimalFormat。这样转的话结果是STRING 类型,就存不到我的entity对像里了,因为entity里面存的是DOUBLE类型的。

另外我用的STRUTS2框架
页面是这个写的
<s:textfield name="entity.income" cssClass="text" size="20" >


不知道页面能不能直接转呢?
...全文
796 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
perliu 2011-04-19
  • 打赏
  • 举报
回复
double超过小数后一定位数会自动转换成科学计数法,另外如果用double进行计算也不是很准确。
对于超长小数还是用BigDecimal比较好。

可以看以下代码
double d = 112.3 / 100000000;
System.out.println(d);
BigDecimal bd = new BigDecimal(d);
System.out.println(bd.doubleValue());
System.out.println(bd.toPlainString());
ginni215 2011-03-07
  • 打赏
  • 举报
回复
最终都是会转成String类型来显示的,所以还要自己转换下才行~
magong 2011-03-07
  • 打赏
  • 举报
回复
不要用浮点数了,浮点数超长后都要转成科学计数法的。
数字超大的话,用BigDecimal好了。

private BigDecimal income;

public String execute(){
income = new BigDecimal("12345678901234567.1234567");
...
}

这样做就不会有问题。
haixiang710 2011-03-07
  • 打赏
  • 举报
回复
Double类型的精度很不准确的....
要框架自动设置进去很简单,你的entity的该属性的get set方法
为你的entity添加一个set方法
public void setXXX(String number){
//做转换处理
this.XXX = ...;
}
zn85600301 2011-03-07
  • 打赏
  • 举报
回复
貌似不行 当时也是转成String的

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧