我有一个MySQL表,其中包含一些Decimal(4,2)字段。
我有一个CSV文件,在这些字段中加载数字为1485.23。
加载文件后,这些字段中的值为99.99,就像要放入的最大值一样。
发布于 2016-02-18 11:17:25
十进制列的声明语法是十进制(M,D)。MySQL 5.7中参数的值范围如下:
M是最大的数字数(精度)。它的范围是1到65。
D是小数点(小数点)右边的数字数。它的范围为0到30,必须不大于M。
M的最大值为65,这意味着对十进制值的计算是精确到65位的。65位精度的限制也适用于精确值的数字文字,因此这类文字的最大范围不同于以前。
示例
在十进制列声明中,可以(而且通常是)指定精度和标度;例如:
salary DECIMAL(5,2)在这个例子中,5是精度,2是刻度。精度表示为值存储的有效数字数,而刻度表示小数点之后可以存储的数字数。
标准SQL要求十进制(5,2)能够用五位数和两个小数存储任何值,因此可以存储在工资列中的值从-999.99到999.99不等。
有关更多信息,https://dev.mysql.com/doc/refman/5.7/en/fixed-point-types.html
发布于 2016-02-18 11:15:14
只需更改您的表,以便接收总计超过4位数的小数。
DECIMAL(4,2)指的是一个总数为4位的数字,其中2位是浮点数之后的数字,因此最大允许为99.99。
DECIMAL(9,3)将接收总数为9位的数字,其中3个在浮点数之后。
https://stackoverflow.com/questions/35479762
复制相似问题