MySql十进制数据类型:不插入正确的值

时间:2013-04-06 08:14:14

标签: mysql floating-point double decimal

短版 我试图插入十进制值但插入后它存储所有十进制值99.999999。我正在使用MySql 5.5.16。

长版

我正在尝试使用

下面的架构创建一个表
CREATE TABLE products (
  id MEDIUMINT NOT NULL AUTO_INCREMENT,
  product_name CHAR(100),
  group_name CHAR(100),
  lon decimal(8,6),
  lat decimal(8,6),
  PRIMARY KEY (id)
);

我的插入语句看起来像

Insert into products (product_name , group_name , lon, lat) values
('Asparagus' , 'fresh vegetables' , 428743.9819 , 4512618.55);

我插入了52个值,而在所有Decimal中,值返回99.999999

我还尝试使用FLOAT返回100.00000,如果DOUBLE,我也会99.999999

任何指导都会有所帮助。

2 个答案:

答案 0 :(得分:3)

更改给定十进制变量的值。对我来说它工作正常。

CREATE TABLE products (
  id MEDIUMINT NOT NULL AUTO_INCREMENT,
  product_name CHAR(100),
  group_name CHAR(100),
  lon decimal(15,6),
  lat decimal(15,6),
  PRIMARY KEY (id)
);

答案 1 :(得分:0)

如果您阅读mysql doc,您将看到需要decimal (13, 6),因为第一个参数是精度...所以要找到它,您必须计算最大值的全局长度。