1

我有一列数据类型decimal设置如下..

`cost` decimal(4,2) NOT NULL DEFAULT '0.00',

但是,当我输入一个价格时,比如 100.00,下次我查看它时会显示99.99.

为什么是这样?我认为4,2允许小数点前 4 个字符和小数点后 2 个字符?

4

3 回答 3

1

4 是精度(总位数),2 是小数位数(小数位数)。

在您的情况下,您需要 6,2。

于 2012-12-18T08:34:27.890 回答
1

DECIMAL(M,D)列最多允许小数点左侧有M - D位数字。

M是最大位数(精度)。

于 2012-12-18T08:34:37.573 回答
1

decimal [ (p[ ,s] )] 和 numeric[ (p[ ,s] )] 固定精度和小数位数。当使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。十进制的 ISO 同义词是 dec 和 dec(p, s)。numeric 在功能上等同于十进制。

底线:您应该尝试将其设为 6,2。

6 为共 6 位,2 为点后 2 位。

于 2012-12-18T08:36:27.947 回答