浮点类型
FLOAT
和 DOUBLE
代表近似数据类型。
类型 | 存储 | 精确 | 范围 |
---|---|---|---|
float |
4 字节 | 23 位有效位/ ~7 位小数 | 10 ^ + / - 38 |
double |
8 个字节 | 53 位有效位/ ~16 位十进制数 | 10 ^ + / - 308 |
REAL
是 FLOAT
的同义词。DOUBLE PRECISION
是 DOUBLE
的同义词。
虽然 MySQL 也允许(M, D)限定符,但不要使用它。 (M, D)表示可以存储最多 M 个总数的值,其中 D 可以在小数点后面。数字将被舍入两次或被截断; 这会带来更多麻烦而不是利益。
由于浮点值是近似值而未存储为精确值,因此尝试在比较中将它们视为精确值可能会导致问题。特别要注意,FLOAT
值很少等于 DOUBLE
值。