float[(m,d)][unsigned] [zerofill]
小(单精度)浮点数。允许的值是-3.402823466e+38到-1.175494351e-38、0和1.175494351e-38到3.402823466e+38。这些是理论限制,基于ieee标准。实际的范围根据硬件或操作系统的不同可能稍微小些。
m是小数纵位数,d是小数点后面的位数。如果m和d被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7位小数位。
如果指定unsigned,不允许负值。
使用浮点数可能会遇到意想不到的问题,因为在mysql中的所有计算用双精度完成..
· double[(m,d)] [unsigned] [zerofill]
普通大小(双精度)浮点数。允许的值是-1.7976931348623157e+308到-2.2250738585072014e-308、0和2.2250738585072014e-308到1.7976931348623157e+308。这些是理论限制,基于ieee标准。实际的范围根据硬件或操作系统的不同可能稍微小些。
m是小数总位数,d是小数点后面的位数。如果m和d被省略,根据硬件允许的限制来保存值。双精度浮点数精确到大约15位小数位。
如果指定unsigned,不允许负值。
· double precision[(m,d)] [unsigned] [zerofill], real[(m,d)][unsigned] [zerofill]
为double的同义词。除了:如果sql服务器模式包括real_as_float选项,real是float的同义词而不是double的同义词。
· float(p) [unsigned] [zerofill]
浮点数。p表示精度(以位数表示),但mysql只使用该值来确定是否结果列的数据类型为float或double。如果p为从0到24,数据类型变为没有m或d值的float。如果p为从25到53,数据类型变为没有m或d值的double。结果列范围与本节前面描述的单精度float或双精度double数据类型相同。
float(p)语法与odbc兼容。
· decimal[(m[,d])] [unsigned] [zerofill]
压缩的“严格”定点数。m是小数位数(精度)的总数,d是小数点(标度)后面的位数。小数点和(负数)的‘-’符号不包括在m中。如果d是0,则值没有小数点或分数部分。decimal整数最大位数(m)为65。支持的十进制数的最大位数(d)是30。如果d被省略, 默认是0。如果m被省略, 默认是10。
如果指定unsigned,不允许负值。
所有decimal列的基本计算(+,-,*,/)用65位精度完成。
· dec[(m[,d])] [unsigned] [zerofill], numeric[(m[,d])][unsigned] [zerofill], fixed[(m[,d])] [unsigned] [zerofill]
是decimal的同义词。fixed同义词适用于与其它服务器的兼容性。
摘自:mysql中文帮助文档