解决方案 »

  1.   

    declare @s decimal(18,8)set @s='2.1234567891'select @s/*2.12345679*/\你的是什么版 我的2012是这个结果
      

  2.   

    /*Microsoft SQL Server 2005 */declare @s decimal(18,8)
     
    set @s='2.1234567891'
     
    select @s--------------------------------------
    2.12345679
    --------------------------------------
      

  3.   

    我的2008版本,直接在查询分析器执行你的SQL语句结果跟你的一样,但是不知道为什么程序里写入到数据库就不对,程序单步调试到最后写入SQL语句那一步都是对的结果,就是执行完SQL写入后结果就如题所述了,开发语言是delphi6,不知道是不是跟这个有关系?
      

  4.   

    估计在程序里面当FLOAT类型了FLOAT是六位。
      

  5.   

    float 6位的话,存储不应该是2.12345700吗
      

  6.   

    有限制,用FormatFloat(’0.00000000‘,mDJ)处理的,单步调试后得到的结果也是正确的8位小数
      

  7.   

    不会啊,你是不是中间又转换了?DECLARE @a decimal(18,8)
    SET @a=2.1234567891
    SELECT @a/*---------------------------------------
    2.12345679
    */
      

  8.   

    float类型不精确,很难保证数据的精确性
      

  9.   

    delphi里
    ADOQuery1.EnableBCD := False;http://bbs.csdn.net/topics/110052034
      

  10.   

    ADOQuery1.EnableBCD := False;这不太实用我的问题,我是插入数据在数据库里显示不正确,自动截取前四位,
    后看一个帖子
    paParameters.ParamByName('DJ').DataType:=ftFloat;
    Parameters.ParamByName('DJ').Value:= ADJ;
    这样处理后,单价这个字段往数据库插入就正常啦
    http://bbs.csdn.net/topics/310169146