【发布时间】:2013-04-06 08:14:14
【问题描述】:
短版 我正在尝试插入十进制值,但插入后它为所有十进制值存储 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。
任何指导都会有所帮助。
【问题讨论】:
-
这是因为您以错误的方式指定列的长度。您的代码显示
lon decimal(8, 6)- 8 个空格,6 个保留用于小数点后的数字。这意味着您的值最多只能达到 99.999999,这是它们可以存储的最大数量。短版:使用lon decimal(12, 6)
标签: mysql floating-point double decimal