当前位置:编程学习 > JAVA >>

关于double中科学计数法的问题,各位高人指点啊

用hibernate把数据存入数据库

domain类中对应的 字段是num  字段类型 是 Double

当传给num的数值位数大于7位时,自动转换为科学记数法,但是在保存入数据时会提示 精度错误

各位大虾 有没有办法 让Double不转换为科学记数法,前提是不改变num的字段类型 和 数据库的字段精度 --------------------编程问答--------------------
DecimalFormat a = new DecimalFormat("#,##0.000000");
double d = 12345678.222333;
System.out.println(a.format(d));
--------------------编程问答-------------------- 不改变字段类型俺还真是想不出好办法 --------------------编程问答--------------------
引用 1 楼 madfatso 的回复:
Java code
DecimalFormat a = new DecimalFormat("#,##0.000000");
double d = 12345678.222333;
System.out.println(a.format(d));

你再FORMAT 有用吗 入库后还是一样的,这是数据库自己的储存方式.
为什么要用Double  还是那句老话 带小数只有String是最方便的 不信你试试
--------------------编程问答-------------------- 1楼的方法我想到过,不过最后a.format(d)这个是string类型的 如果把它转化成double类型他还是会用到科学计数法,我做的这个项目是通过一个计算公式 算出一个数,把它四舍五入保留两位小数,但JAVA把算出来的数直接用科学计数法表示了,截取后存库报精度大的问题
3楼的话很有道理,不过人家把数据库弄成double类型的,我一个小程序员有什么办法。。。。
还是希望有人知道如何做可以,,,指点小弟吧,这点屁大的问题折磨死我了,需求不能改,数据库不能改,
就只能折磨我了 --------------------编程问答-------------------- 我建议LZ这种情况可以把数据库这个列的数据统一缩小数倍,拿出来用的时候可以放大数倍,就不会出现这个问题了 --------------------编程问答-------------------- 谢谢5楼 如果就几个字段 或者数据合适 我觉得你的办法很好。。
但是小弟我做的是一个财务系统,数据都是以万为单位,但是还会出现那么大的数,所以缩小多少倍不好确定,还有财务系统出的报告里面要用的数据能有几百个字段,如果每个都缩小再放大,对于代码来说太麻烦了 --------------------编程问答-------------------- 小弟也碰到了这个问题,有解决办法吗?
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,