MySQL允许使用非标准语法:FLOAT(M,D)或REAL(M,D)或DOUBLE PRECISION(M,D)。
这里,“(M,D)”表示该值一共显示M位整数,其中D位位于小数点后面。
例如,定义为FLOAT(7,4)的一个列可以显示为-999.9999。MySQL保存值时进行四舍五入,因此如果在FLOAT(7,4)列内插入999.00009,近似结果是999.0001。
例如,经纬度保留6位小数如下定义
CREATE TABLE `phone` (
`id` int(11) NOT NULL auto_increment,
`imsi` varchar(45) default NULL,
`jingdu` double(20,6) default NULL,
`weidu` double(20,6) default NULL,
`address` varchar(100) default NULL,
`curtime` varchar(50) default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=86 DEFAULT CHARSET=utf8;
DECIMAL和NUMERIC类型在MySQL中视为相同的类型。
它们用于保存必须为确切精度的值,例如货币数据。
当声明该类型的列时,可以(并且通常要)指定精度和标度;
例如: salary DECIMAL(5,2)
在该例子中,5是精度,2是标度。精度表示保存值的主要位数,标度表示小数点后面可以保存的位数。