IF EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME='numbers')
DROP TABLE numbers
CREATE TABLE numbers
(
N1 INT,
N2 NUMERIC(5,0),
N3 NUMERIC(4,2)
)
GO
INSERT numbers VALUES(1.5,1.5,1.5)
SELECT * FROM numbers
//结果为什么是1,2,1.50  ?尤其是第二个结果为什么是2呢?

解决方案 »

  1.   

    int直接取整,舍弃小数部分
    numeric(5,0)没有小数位,四舍五入
      

  2.   

    表 字段 N2 NUMERIC(5,0)  表示是最大5位数字,并且没有小数点那么1.5 插入表的时候自动 四舍五入 为 2
      

  3.   

    select cast(1.5 as decimal(18,2))
    select cast(1.5 as decimal(18,0))1.50
    2四舍五入了
      

  4.   


    CREATE TABLE numbers
    (
    N1 INT,
    [code=SQL]N2 NUMERIC(5,0),
    N3 NUMERIC(4,2)
    ) [/code]
    你创建的表中,N2的类型是NUMERIC(5,0),你插入的数据是1.5,结果会四舍五入的!!!!
    试试这个!!
    CREATE TABLE numbers
    (
    N1 INT,
    N2 NUMERIC(5,2),
    N3 NUMERIC(4,2)