有个一直没弄清楚的问题。float类型数据如何处理比较妥当。如果用float型,怕有精度的丢失,以前用mysql时会出现丢数甚至变数的问题。现在有几种办法,希望高手指点一下哪种比较好。1.用number类型存储。不知道会不会出现丢失,混乱问题。效率如何
2.所有数据转成varchar存进数据库。占用空间比较大。一直采用这种笨办法。
3.将float转成4字节ascII存到数据库中。但是如用存储过程对其进行运算,不知道如何转回来。希望有经验的人们指点。

解决方案 »

  1.   

    number是数字类型中精度最高的了
      

  2.   

    用NUMBER存储,NUMBER的精度比FLOAT高
      

  3.   

    number型的进行计算,肯定会考虑精度问题,这跟你具体情况而定,你的需求是怎么样的,你就可以相应的做精度调整
    比如我们系统,都是采用number(20,5)这样存储的,
      

  4.   

    好。谢谢。想确定下,number这种数据不会想mysql里的float发生精度变化吧。以前做mysql时,用float存偶尔出现过取出的数跟原数相差很大的情况。
      

  5.   

    number<precision, scale> 秒杀一切
      

  6.   

    --给楼主个例子看看
    SQL> declare
      2  testnum number(38,19);
      3  begin
      4  testnum:=123456789987654321.123456789987654321;
      5  dbms_output.put_line(testnum);
      6  end;
      7  /
    --这个精度还怕什么啊,什么都是浮云
    123456789987654321.123456789987654321PL/SQL 过程已成功完成。