用于业务应用程序的MySQL数据类型?

用于业务应用程序的MySQL数据类型?,mysql,sql,database,types,Mysql,Sql,Database,Types,你好,我对MySQL的数据类型感到困惑 我使用的是decimal,因为它显然是商业应用程序中最安全的准确性赌注。但是,我发现当返回字段时,我的值是99999999.99,其中我的数据类型是DECIMAL(10,2)。因此,实际值溢出到(10,2)参数之外 即使我在逗号前指定了10个位置,在逗号后指定了2个位置,这是否正确MySQL仍然存储完整的数字 还可以关闭逗号前后显示的最大位数吗 即使我在逗号前指定了10个位置,在逗号后指定了2个位置,这是否正确。MySQL仍然存储完整的数字吗 不,不会的

你好,我对MySQL的数据类型感到困惑

我使用的是
decimal
,因为它显然是商业应用程序中最安全的准确性赌注。但是,我发现当返回字段时,我的值是
99999999.99
,其中我的数据类型是DECIMAL(10,2)。因此,实际值溢出到
(10,2)
参数之外

即使我在逗号前指定了10个位置,在逗号后指定了2个位置,这是否正确MySQL仍然存储完整的数字

还可以关闭逗号前后显示的最大位数吗

即使我在逗号前指定了10个位置,在逗号后指定了2个位置,这是否正确。MySQL仍然存储完整的数字吗

不,不会的

第一,;小数点右边两个,左边八个

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

第二,如果有两个以上的数字,MySQL将静默地将最低有效数字转换为scale。这可能看起来像MySQL截断,但实际行为取决于平台。如果您提供的最高有效位数过多,则会引发错误

最后,当您使用数据库时,显示的位数与数据类型或存储的值范围没有多大关系

即使我在逗号前指定了10个位置,在逗号后指定了2个位置,这是否正确。MySQL仍然存储完整的数字吗

不,不会的

第一,;小数点右边两个,左边八个

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

第二,如果有两个以上的数字,MySQL将静默地将最低有效数字转换为scale。这可能看起来像MySQL截断,但实际行为取决于平台。如果您提供的最高有效位数过多,则会引发错误


最后,在使用数据库时,显示的位数与数据类型或存储的值范围无关。

DECIMAL(10,2)
不是点前10位,点后2位;总共是10位,其中2位在该点之后(因此在该点之前是8位)。至于是否可以“关闭”最大位数-不,不可以(如果没有其他限制,您将受到可用存储空间的限制)。如果您需要更多位数,为什么不更改列定义?
DECIMAL(10,2)
不是点前10位,点后2位;总共是10位,其中2位在该点之后(因此在该点之前是8位)。至于是否可以“关闭”最大位数-不,不可以(如果没有其他限制,您将受到可用存储空间的限制)。如果您需要更多位数,为什么不更改列定义?感谢您对总位数的澄清,但我想知道,我想你说得很复杂:比如说
DECIMAL(10,2)
,返回的结果是:
32.4889932
,将
mysql
32.49
32.4889932
进行进一步的计算。谢谢你对总位数的澄清,但我想知道,我想你是用一种复杂的方式说的:比如说
DECIMAL(10,2)
,返回的结果是:
32.4889932
,将
mysql
32.49
32.4889932
进行进一步的计算吗?