float 和 real
用于表示浮点数字数据的近似数字数据类型。浮点数据为近似值;并非数据类型范围内的所有数据都能精确地表示。语法
float [ ( n ) ]从 - 1.79E + 308 到 1.79E + 308 之间的浮点数字数据。n 为用于存储科学记数法 float 数尾数的位数,同时指示其精度和存储大小。n 必须为从 1 到 53 之间的值。n 所在范围 精度 存储大小 
1-24 7 位数 4 字节 
25-53 15 位数 8 字节 
Microsoft® SQL Server™ float[(n)] 数据类型对于从 1 到 53 之间的所有 n 值均符合 SQL-92 标准。double precision 的同义词为 float(53)。real从 ?3.40E + 38 到 3.40E + 38 之间的浮点数字数据。存储大小为 4 字节。在 SQL Server 中,real 的同义词为 float(24)。

解决方案 »

  1.   

    Money 
    8字节,存放货币类型,值为-2^63~2^63-1 Float (n) 
    N在1~24之间,4字节,7位精度 
    N=1~7为real Float 和 real为近似小数,real的精度差一些,建议你用numeric(n,m)
      

  2.   

    real和float存储的都是非精度数据,所以计算的结果会有问题.你可以随机生成一些数据测试一下,改为float的计算结果也会出现你说的那种问题的.用money/numeric/decimal就不会有问题,因为它们都是存储精度数据.