使用十进制数据类型时的价格变化
Posted
技术标签:
【中文标题】使用十进制数据类型时的价格变化【英文标题】:Price changes when using decimal data type 【发布时间】:2012-12-05 10:16:49 【问题描述】:我有一个数据类型为decimal
的列设置为这样..
`cost` decimal(4,2) NOT NULL DEFAULT '0.00',
但是,当我输入价格时,例如 100.00,下次我查看它时会显示 99.99
。
这是为什么?我以为4,2
允许小数点前 4 个字符和小数点后 2 个字符?
【问题讨论】:
【参考方案1】:4 是精度(总位数),2 是小数位数(小数位)。
在您的情况下,您需要 6,2。
【讨论】:
【参考方案2】:DECIMAL(M,D)
列最多允许小数点左侧有 M - D 个数字。
M 是最大位数(精度)。
【讨论】:
【参考方案3】:十进制 [ (p[ ,s] )] 和数字[ (p[ ,s] )] 固定精度和比例数字。当使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。十进制的 ISO 同义词是 dec 和 dec(p, s)。 numeric 在功能上等同于 decimal。
底线: 您应该尝试将其设为 6,2。
6为共6位,2为点后2位。
【讨论】:
以上是关于使用十进制数据类型时的价格变化的主要内容,如果未能解决你的问题,请参考以下文章