• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 定点类型(精确值)(DECIMAL,NUMERIC)

    DECIMALNUMERIC类型的存储精确的数值数据。当保留精确度很重要时,例如使用货币数据,则使用这些类型。在MySQL中,NUMERIC实现为DECIMAL,因此以下有关的说明DECIMAL同样适用于NUMERIC

    MySQL DECIMAL以二进制格式存储值。请参见“整数类型(精确值)”。

    DECIMAL列声明中,可以(通常是)指定精度和小数位数。例如:

    salary DECIMAL(5,2)
    

    在此示例中,5是精度,2是小数位数。精度表示值存储的有效位数,小数位数表示小数点后可以存储的位数。

    标准SQL要求DECIMAL(5,2)能够存储具有五位数字和两位小数的任何值,因此可以存储在salary列中的值的范围是从-999.99999.99

    在标准SQL中,语法等效于。同样,该语法等效于,其中允许实现确定的值。MySQL支持这两种语法的变体形式。默认值为10。DECIMAL(M)DECIMAL(M,0)DECIMALDECIMAL(M,0)MDECIMALM

    如果DECIMAL小数位数为0,则值不包含小数点或小数部分。

    最大位数为DECIMAL65,但是给定DECIMAL列的实际范围可能受给定列的精度或小数位数的限制。如果为该列分配的值在小数点后的位数比指定刻度允许的位数多,则该值将转换为该刻度。(精确的行为是特定于操作系统的,但是通常效果是将其截断为允许的位数。)