再见,我对MySQL
的数据类型感到困惑。
我使用的decimal
显然是商业应用程序中最安全的准确性赌注。但是,我发现当返回字段时,我的值是999999999.99
,其中我的数据类型是DECIMAL(10,2)。所以实际值超出了(10, 2)
参数。
即使我在逗号前指定了10个位置,在逗号后指定了2个位置,这是正确的吗。MySQL还保存完整的数字吗?
还可以关闭逗号前后显示的最大位数吗?
最佳答案
即使我在逗号前指定了10个位置,在逗号后指定了2个位置,这是正确的吗。MySQL还保存完整的数字吗?
不,不会的。
首先,you specified 10 digits altogether;两个在小数点的右边,八个在左边。
标准SQL要求DECIMAL(5,2)能够存储5位和2位小数的任何值,因此可以存储在salary列中的值的范围是-999.99到999.99。
其次,如果有两个以上,MySQL会自动将最低有效数字转换为小数位数。这可能看起来像MySQL截断,但实际的行为依赖于平台。如果您提供了太多最重要的数字,则会引发错误。
最后,在处理数据库时,显示的位数与数据类型或存储的值范围没有多大关系。