我有一列数据类型decimal
设置如下..
`cost` decimal(4,2) NOT NULL DEFAULT '0.00',
但是,当我输入一个价格时,比如 100.00,下次我查看它时会显示99.99
.
为什么是这样?我认为4,2
允许小数点前 4 个字符和小数点后 2 个字符?
我有一列数据类型decimal
设置如下..
`cost` decimal(4,2) NOT NULL DEFAULT '0.00',
但是,当我输入一个价格时,比如 100.00,下次我查看它时会显示99.99
.
为什么是这样?我认为4,2
允许小数点前 4 个字符和小数点后 2 个字符?
4 是精度(总位数),2 是小数位数(小数位数)。
在您的情况下,您需要 6,2。
一DECIMAL(M,D)
列最多允许小数点左侧有M - D位数字。
M是最大位数(精度)。
decimal [ (p[ ,s] )] 和 numeric[ (p[ ,s] )] 固定精度和小数位数。当使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。十进制的 ISO 同义词是 dec 和 dec(p, s)。numeric 在功能上等同于十进制。
底线:您应该尝试将其设为 6,2。
6 为共 6 位,2 为点后 2 位。