美好的一天,我对MySQL
.
我decimal
显然使用它是业务应用程序中准确性的最安全选择。但是,我发现当返回字段时,我的值是999999999.99
,其中我的数据类型是 DECIMAL(10,2)。所以实际值已经溢出到(10, 2)
参数之外。
即使我在逗号前指定了 10 个位置,在逗号后指定了 2 个位置,这是否正确。MySQL仍然存储完整的数字吗?
是否可以关闭逗号前后显示的最大位数?
即使我在逗号前指定了 10 个位置,在逗号后指定了 2 个位置,这是否正确。MySQL仍然存储完整的数字吗?
不,它不会。
首先,您总共指定了 10 位数字;两个在小数点右边,八个在左边。
标准 SQL 要求 DECIMAL(5,2) 能够存储具有五位和两位小数的任何值,因此可以存储在薪水列中的值范围为 -999.99 到 999.99。
其次,如果有两个以上,MySQL 将默默地将最低有效数字转换为比例。这可能看起来像 MySQL 截断,但实际行为取决于平台。如果您提供太多最重要的数字,它将引发错误。
最后,当您使用数据库时,显示的位数与数据类型或存储的值范围无关。