有一个字段是real类型,我写入时是6.9,例如:
insert ...(6.9)
再从数据库中查出来时就得到了6.89999这样的,我希望仍然是6.9应该如何处理。

解决方案 »

  1.   

    create table tb (col real)
    insert into tb select 6.9
    select convert(decimal(5,1),col+0.0005) from tb
    go
    drop table tb
      

  2.   

    float 和 real 数据类型被称为近似的数据类型。在近似数字数据类型方面,float 和 real 数据的使用遵循 IEEE 754 标准。近似数字数据类型并不存储为多数数字指定的精确值,它们只储存这些值的最近似值。在很多应用程序中,指定值与存储值之间的微小差异并不明显。但有时这些差异也值得引起注意。由于 float 和 real 数据类型的这种近似性,当要求精确的数字状态时,比如在财务应用程序中,在那些需要舍入的操作中,或在等值核对的操作中,就不使用这些数据类型。这时就要用 integer、decimal、money 或 smallmone 数据类型。
      

  3.   

    create table tb (col decimal(10,1))
    insert into tb select 6.9
    select col from tb
    go
    drop table tb
    /*
    col          
    ------------ 
    6.9
    */
      

  4.   

    那就直接定义一变量,类型是numeric(19,1)