DECIMAL(x,0)有什么用?

Leo*_*Leo 9 mysql

在DECIMAL(M,D)列中,MySQL将D的范围选项设置为0到30.

是否有一个微妙的原因,我错过了0的选项?小数点后是不是小数点没有整数?

我何时以及为什么要指定没有小数位的DECIMAL?

Emi*_*röm 8

DECIMAL类型的数字范围远大于INTEGER或BIGINT.你能够在DECIMAL(65,0)中存储的最大数字是65个9.BIGINT中最大的数字是18446744073709551615.

对于小数字,DECIMAL(x,0)通常稍贵一些.如果您的数字在其中一个范围内,请考虑使用定义的INTEGER类型.


DECIMAL(x,0)字段的存储要求(以字节为单位)取决于x根据以下公式:

Storage = x / 9 + Leftover
Leftover = round_up((x % 9) / 2) (i.e., about half of the leftover digits)
Run Code Online (Sandbox Code Playgroud)

您可以在MySQL手册中阅读有关数值类型的存储要求的更多信息,并自行比较.