货币数据
货币数据表示正的或负的货币值。在 Microsoft® SQL Server™ 2000 中使用 money 和 smallmoney 数据类型存储货币数据。货币数据存储的精确度为四位小数。可以存储在 money 数据类型中的值的范围是 -922,337,203,685,477.5808 至 +922,337,203,685,477.5807(需 8 个字节的存储空间)。可以存储在 smallmoney 数据类型中的值的范围是 -214,748.3648 至 214,748.3647(需 4 个字节的存储空间)。如果数值超过了上述范围,则可使用 decimal 数据类型代替。

解决方案 »

  1.   

    你要是精确到2位小数可以numeric(12,2)
      

  2.   

    我想精确到2位小数,numeric(12,2)是最好的吗?
      

  3.   

    money
    使用货币数据
    Microsoft® SQL Server™ 使用两种数据类型存储货币数据(货币值):money 和 smallmoney。这些数据类型可以使用以下货币符号中的任意一种。货币数据不需要用单引号 (') 括起来。但是,货币数值之前必须带有适当的货币符号。例如,若要指定 100 英镑,请使用 £100。money 和 smallmoney 被限制到小数点后 4 位。如果要求小数点后有更多位,请使用 decimal 数据类型。用句点将局部的货币单位(如分)从总体货币单位中分隔出来。例如,2.15 表示 2 元 15 分。尽管这些数据类型的显示形式中包括逗号分隔符,但是逗号分隔符不能用在 money 或 smallmoney 常量中。只能在显式转换为 money 或 smallmoney 的字符串中指定逗号分隔符,比如:USE Northwind
    GO
    CREATE TABLE TestMoney (cola INT PRIMARY KEY, colb MONEY)
    GO
    SET NOCOUNT ON
    GO-- The following three INSERT statements work.
    INSERT INTO TestMoney VALUES (1, $123.45)
    GO
    INSERT INTO TestMoney VALUES (2, $123123.45)
    GO
    INSERT INTO TestMoney VALUES (3, CAST('$444,123.45' AS MONEY) )
    GO-- This INSERT statement gets an error because of the comma
    -- separator in the money string.
    INSERT INTO TestMoney VALUES (3, $555,123.45)
    GO
    SET NOCOUNT OFF
    GO
    SELECT * FROM TestMoney
    GO