我在进行数据库转化的时候,float类型的数据长度变化了,比如在sql server 中是2.12,导入到oracle9i 以后就成了2.1999999998之类的,请问怎么解决,解决马上给分!谢谢大家!

解决方案 »

  1.   

    ----
    sql server 中是2.12,导入到oracle9i 以后就成了2.1999999998
    ----
    楼主可能举例时搞错了吧,2.12 怎么可能变成 2.1999999998 
    是不是 2.2 变成 2.1999999998 了?如果希望保留 2.2 的话,在Oracle中定义该字段时,定义为 NUMBER(n,1)n是数字的总长度,1表示小数点后保留一位,四舍五入。
      

  2.   

    谢谢,不过我将数据导过以后float类型的数据就变成了这种情况,2.12-->2.119999999998.在orale中也是以float类型存在的.如果我要改成number型的话我的改动量太大了,真不知道该怎么办?跳楼吧
      

  3.   

    那就
    UPDATE TT SET NUM = ROUND(NUM,2)
    呵呵,可能夸张了些
      

  4.   

    虽然Oracle支持Float,但是一般都用Number作为其数字类型,建议你写个过程,直接更改所有FLOAT类型
      

  5.   

    查询该类型字段如下:
    select * from cols
     where data_type = 'FLOAT';更改该类型字段如下:
    alter table table_name
      modify col_name (number(N,2));table_name 表名
    col_name   字段名
    N          自然数
      

  6.   

    谢谢大家,要减小精度该字段必须为空,还是用round(col,n) 比较好点,可能.谢谢大家.