用hibernate把数据存入数据库domain类中对应的 字段是num  字段类型 是 Double当传给num的数值位数大于7位时,自动转换为科学记数法,但是在保存入数据时会提示 精度错误各位大虾 有没有办法 让Double不转换为科学记数法,前提是不改变num的字段类型 和 数据库的字段精度

解决方案 »

  1.   

    DecimalFormat a = new DecimalFormat("#,##0.000000");
    double d = 12345678.222333;
    System.out.println(a.format(d));
      

  2.   

    你再FORMAT 有用吗 入库后还是一样的,这是数据库自己的储存方式.
    为什么要用Double  还是那句老话 带小数只有String是最方便的 不信你试试
      

  3.   

    1楼的方法我想到过,不过最后a.format(d)这个是string类型的 如果把它转化成double类型他还是会用到科学计数法,我做的这个项目是通过一个计算公式 算出一个数,把它四舍五入保留两位小数,但JAVA把算出来的数直接用科学计数法表示了,截取后存库报精度大的问题
    3楼的话很有道理,不过人家把数据库弄成double类型的,我一个小程序员有什么办法。
    还是希望有人知道如何做可以,,,指点小弟吧,这点屁大的问题折磨死我了,需求不能改,数据库不能改,
    就只能折磨我了