我使用的是 SQL SERVER + ADO + Delphi6.0,数据库里有一个字段为numeric(18,10),即最多有10位小数。使用SQL和存储过程都没问题,可是Delphi里不管怎么弄,只有4位小数有效。使用Table操作,或从存储过程中读出,都会忽略4位以后的小数部分。
    这是什么问题呀,请高手指点!

解决方案 »

  1.   

    好像TBCDField本身默认只有4位小数。
        另外,使用TFloatField好像能好一点,可以处理超过4位的小数,但是对于诸如0.000001这样的小数就会成为1E-6,不是我想要的。
      

  2.   

    delphi的精度没有达到,如果你要很高的精度要求,建议你自己写,比如把整数小数分成两个字段,然后自己写代码合并。
      

  3.   

    用float类型是可以的
    numeric就不清楚了
      

  4.   

    ADOQuery1.EnableBCD:=false;
    这样就可以了,不用更改数据类型
      

  5.   

    楼上的:这样能好一点(因为这样字段类型默认变成了TFloatField),但是对于诸如0.000001这样的小数就会成为1E-6,不是我想要的。
      

  6.   

    如果用asvalue的话,显示的倒是 .000001
    用asstring或 floattostr 就成 1E-6了
    这个就不知道了