美好的一天,我对MySQL
的数据类型感到困惑。
我正在使用decimal
,因为它显然是商业应用程序准确性最安全的选择。但是,我发现当返回字段时,我的值为999999999.99
,其中我的数据类型为DECIMAL(10,2)。所以实际值溢出(10, 2)
参数。
即使我在逗号之前指定了10个位置而在逗号之后指定了2个位置也是正确的。 MySQL仍会存储完整的数字?
还可以<逗>关闭逗号前后显示的最大位数吗?
答案 0 :(得分:1)
不,它不会。即使我在逗号之前指定了10个位置而在逗号之后指定了2个位置也是正确的。 MySQL仍然存储完整的数字?
首先,you specified 10 digits altogether;两个位于小数点右侧,八个位于左侧。
标准SQL要求DECIMAL(5,2)能够存储五位数和两位小数的任何值,因此可以存储在工资列中的值范围为-999.99到999.99。
其次,如果有两个以上,MySQL会默默地将最低有效数字转换为比例。这可能看起来像MySQL截断,但实际行为是依赖于平台的。如果您提供太多最重要的数字,它将引发错误。
最后,当您使用数据库时,显示的位数与 的数据类型或存储的值的范围几乎没有关系