JAVA
----------------------------------
double a = 1.5559887918E8insert into tmp (aa) values(1.5559887918E8)DB
-----------
155598879.1800001这是为什么阿??
关键的是,怎么解决啊~~~~~~不能用BigDecimal类型,只能用double

解决方案 »

  1.   

    转成String存入数据库不行吗?
      

  2.   

    转成string也不行~~IS?啥东东?
      

  3.   

    恩。。可能是我没说清楚
    1,db里的数据类型,必须是number型的,我没法改
    2,java里的数据类型必须是double型的,因为用到了万恶的第三方,它返回的就是double我的意思是,能不能通过java或oracle里的函数,把数值给限制死~~~
      

  4.   

    package testfloat;import java.math.BigDecimal;/**
     *
     * @author Administrator
     */
    public class Main {    /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            Float f1 = 0.001f,f2=0.000001f;
            BigDecimal bf2 = new BigDecimal(f2);
            System.out.print(f1+"---"+f2+"--"+bf2.toPlainString());
        }}run:
    0.0010---1.0E-6--0.0000009999999974752427078783512115478515625成功生成(总时间:2 秒)
    这样可以去掉科学计数,使得插入数据正常。