Mysql 使用十进制数据类型时的价格变化
我有一列数据类型为Mysql 使用十进制数据类型时的价格变化,mysql,decimal,sqldatatypes,Mysql,Decimal,Sqldatatypes,我有一列数据类型为decimalsetup `cost` decimal(4,2) NOT NULL DEFAULT '0.00', 但是,当我输入一个价格时,比如说100.00,下次我看它时,它会显示99.99 为什么会这样?我认为4,2允许小数点前4个字符,小数点后2个字符?4是精度(总位数),2是刻度(小数位数) 在你的情况下,你想要6,2 ADECIMAL(M,D)列最多允许M-D小数点左侧的数字 M是最大位数(精度)。十进制[(p[,s])]和数字[(p[,s])] 固定精度和刻度数
decimal
setup
`cost` decimal(4,2) NOT NULL DEFAULT '0.00',
但是,当我输入一个价格时,比如说100.00,下次我看它时,它会显示99.99
为什么会这样?我认为4,2
允许小数点前4个字符,小数点后2个字符?4是精度(总位数),2是刻度(小数位数)
在你的情况下,你想要6,2 ADECIMAL(M,D)
列最多允许M-D小数点左侧的数字
M是最大位数(精度)。十进制[(p[,s])]和数字[(p[,s])]
固定精度和刻度数字。使用最大精度时,有效值介于-10^38+1到10^38-1之间。十进制的ISO同义词是dec和dec(p,s)。numeric在功能上等同于decimal
底线:
你应该试着把它改成6,2
共6位,点后2位中有2位