哪种情况下要用到 float型呀,另外,定义 float 型时,float(n) 中的N如何定呀? 哪种情况下要用float型,而不用numeric型?
---------------------------------
我想,既然有这种类型,就有存在的必要,但是我不知在哪种情况下要用float型,而不用numeric型.
还有:定义 float 型时,位数如何设定呀?哪种情况下不宜用 numeric,而最好用 float 型呢?
同理 real 型也有这个问题.

解决方案 »

  1.   

    联机帮助我也看了,说是近似值.
    所以我还是不明白,能用精确值,为何用近似值呢?
    任何情况下不是精确更好吗?用 numeric 来代替 float 不是更好吗?
    当然,是我不明白,所以想问问大家呀?
      

  2.   

    declare @a float(30),@b numeric(15,10)set @a =1.0/3
    set @b = 1.0 /3
    select @a,@b
    /*
                                                                            
    ----------------------------------------------------- ----------------- 
    0.33333299999999999                                   .3333330000(所影响的行数为 1 行)
    */
      

  3.   

    顶楼上一下.float:从-1.79^308到1.79^308之间的浮点数字数据。numeric
    有两个参数:p(精度)和s(小数位数)。p指定小数点左边和右边可以存储的十进制数字的最大个数,p必须是从 1到38之间的值。s指定小数点右边可以存储的十进制数字的最大个数,s必须是从0到p之间的值,默认小数位数是0。
      

  4.   

    float(N)
    这个N如何设定,好象不是小数位数呀,精度是一个什么概念呀?
      

  5.   


    Microsoft SQL Server 2000/2005 将 n 作为两个可能的值来处理。如果 1<=n<=24,n 作为 24 处理。如果 25<=n<=53,则 n 作为 53 处理。SQL Server 中,real 的同义词为 float(24)。n范围:
    [1, 24] --> 4字节,可以理解为单精度
    [25,53] --> 8字节,可以理解为双精度
      

  6.   

    我关键想问,哪种情况下要用float,real型呢?即用numeric型不合适,必须要用float型来处理.
    哪种情况下呢?
      

  7.   

    首先哪个能表示值大不用说了吧
    再次,比如你想存1/3    ,要求能最大精度保留的数据,那应该是0.333333333333333。。  ,3不尽,那么float就能胜任,而且numeric就不行了,总是要精度范围的
      

  8.   

    本帖最后由 cxmcxm 于 2008-04-28 23:44:26 编辑
      

  9.   

    --试试以下程序就清楚
    declare @tmp table (a1 float,a2 numeric(18,2))
    insert into @tmp values (0.3,0.3)
    select * from @tmp
      

  10.   


    谢谢,我知道二者在表现形式上的区别,但是关键是,什么情况下要用float型.
    我就是不知道它的用途在哪方面.因为我写的程序中,从未用到过float型,所以有点不明白.