在数据库中,一个字段我使用了decimal(18,3)类型,
那么如果存入了数据为2,显示的结果是2.000,
我如果才能让显示的出的数据为2,
输入的数据为2.1,显示2.1,而不是2.100

解决方案 »

  1.   

    DECLARE @n DECIMAL(18,3)
    SET @n=1.2SELECT @n,CAST(@n AS FLOAT)
    /*
    --------------------------------------- ----------------------
    1.200                                   1.2(1 行受影响)
    */
      

  2.   

    DECLARE @a TABLE(a DECIMAL(18,3))
    INSERT @a SELECT 2
    UNION ALL SELECT 2.501
    UNION ALL SELECT 0SELECT  a [Init],
    CAST(a AS FLOAT) [Float], 
    CAST(CAST(a AS FLOAT) as VARCHAR) [Float_Char]
    FROM @a --result
    /*
    Init                 Float                                                 Float_Char                     
    -------------------- ----------------------------------------------------- ------------------------------ 
    2.000                2.0                                                   2
    2.501                2.5009999999999999                                    2.501
    .000                 0.0                                                   0(所影响的行数为 3 行)
    */
      

  3.   

    DECLARE @a TABLE(a DECIMAL(18,3))
    INSERT @a SELECT 2
    UNION ALL SELECT 2.501
    UNION ALL SELECT 0
    UNION ALL SELECT 2.50
    select case when a-cast(a as int)>0 then cast(a as float)
           else cast(a as int)end a
    from @a
    /*
    a
    ----------------------
    2
    2.501
    0
    2.5(4 行受影响)
    */
      

  4.   

    程序一般都有format的设置。数据库里不要做