Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用十进制数据类型时的价格变化_Mysql_Decimal_Sqldatatypes - Fatal编程技术网

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

A
DECIMAL(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位