使用小数数据类型时价格会发生变化

时间:2012-12-18 08:32:27

标签: mysql decimal sqldatatypes

我有一个数据类型为decimal的列设置为..

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

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

这是为什么?我认为4,2允许在十进制和&之前有4个字符。 2之后?

3 个答案:

答案 0 :(得分:1)

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

在你的情况下,你想要6,2。

答案 1 :(得分:1)

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

M 是最大位数(精度)。

答案 2 :(得分:1)

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

底线: 你应该尝试做到6,2。

6,总共6位数,2位,点数后2位数。