发现这么个问题,加一个字段为float,然后增加一个值为0.4
用查询分析器一查,结果成了0.40000000000000002
又增加一个值为0.7 用查询分析器一查成了0.69999999999999996
加一个值为1.23 ,再一查还是1.23谁能告诉我这是怎么回事啊???? 是float类型的问题,还是数据库的问题?

解决方案 »

  1.   

    float是这样的.
    显示时转换一下.cast(col as decimal(18,2))
      

  2.   

    float 和 real
    用于表示浮点数字数据的近似数字数据类型。浮点数据为近似值;并非数据类型范围内的所有数据都能精确地表示
      

  3.   

    这个类型就这样。它本来就是模糊数据类型。
    如果需要精确的话,用decimal。
      

  4.   

    这个类型就这样。它本来就是模糊数据类型。
    如果需要精确的话,用decimal。
      

  5.   

    这个类型就这样。它本来就是模糊数据类型。
    如果需要精确的话,用decimal。
      

  6.   

    --如果是想保留兩位小數,可以用Numeric(10,2)
    Declare @T Table (A Float, B Numeric(10,2))
    Insert @T Select 12.21,12.21Select * From @T
    --Result
    /*
    AB
    12.210000000000001 12.21
    */