decimal 和 numeric (Transact-SQL)

带固定精度和小数位数的数值数据类型。

  • decimal[ **(**p[ **,**s] )] 和 numeric[ **(**p[ **,**s] )]
    固定精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。decimal 的 ISO 同义词为 dec 和 dec(p, s)。numeric 在功能上等价于 decimal。

  • p(精度)
    最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须是从 1 到最大精度 38 之间的值。默认精度为 18。

  • s (小数位数)
    小数点右边可以存储的十进制数字的最大位数。小数位数必须是从 0 到 p 之间的值。仅在指定精度后才可以指定小数位数。默认的小数位数为 0;因此,0 <= s <= p。最大存储大小基于精度而变化。

    精度

    存储字节数

    1 - 9

    5

    10-19

    9

    20-28

    13

    29-38

    17