Mysql SQL对浮点的正确定义

Mysql SQL对浮点的正确定义,mysql,sql,Mysql,Sql,我正在测量地理位置上的一些值 我需要创建一个包含以下内容的表: date longitude latitude value “日期”列是度量的日期, 该值只是度量值的int值, 经度和纬度是一个坐标-它们是浮点列,在点之前有3位数字,在点之后有5位数字(即*.) 我想知道如何定义我的表,我尝试使用: CREATE TABLE `obs` ( `id` int(11) NOT NULL AUTO_INCREMENT, `date` date DEFAULT NULL, `lon`

我正在测量地理位置上的一些值 我需要创建一个包含以下内容的表:

date 
longitude
latitude
value
“日期”列是度量的日期, 该值只是度量值的int值, 经度和纬度是一个坐标-它们是浮点列,在点之前有3位数字,在点之后有5位数字(即*.

我想知道如何定义我的表,我尝试使用:

CREATE TABLE `obs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `date` date DEFAULT NULL,
  `lon` decimal(5,5) DEFAULT NULL,
  `lat` decimal(5,5) DEFAULT NULL,
  `val` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
这里有一个链接

但是当我想跑的时候

INSERT INTO `obs` VALUES (null,'2014/06/07','34.000','31.342',1)
我得到以下错误:

第1行“lon”列的值超出范围:

谁能给我解释一下怎么了

十进制(5,5)
表示

5 decimal places in TOTAL
5 decimal places after the point
这将使所有在点之前有小数位的数字无效

你可能想要

decimal(10,5)
十进制(5,5)
表示

5 decimal places in TOTAL
5 decimal places after the point
这将使所有在点之前有小数位的数字无效

你可能想要

decimal(10,5)
十进制(5,5)
表示

5 decimal places in TOTAL
5 decimal places after the point
这将使所有在点之前有小数位的数字无效

你可能想要

decimal(10,5)
十进制(5,5)
表示

5 decimal places in TOTAL
5 decimal places after the point
这将使所有在点之前有小数位的数字无效

你可能想要

decimal(10,5)

BTW
decimal
是定点而不是浮点。BTW
decimal
是定点而不是浮点。BTW
decimal
是定点而不是浮点。BTW
decimal
是定点而不是浮点。