在 MySQL 中,常见的浮点数类型有两种:FLOAT 和 DOUBLE。
1. FLOAT 类型
单精度浮点数,占用 4 个字节。
可以表示的数值范围大约是:-3.402823466E+38 到 -1.175494351E-38,以及 0 和 1.175494351E-38 到 3.402823466E+38。
2. DOUBLE 类型
双精度浮点数,占用 8 个字节。
可以表示的数值范围大约是:-1.7976931348623157E+308 到 -2.2250738585072014E-308,以及 0 和 2.2250738585072014E-308 到 1.7976931348623157E+308。
例如,如果您需要存储一个精度要求不是特别高的小数,比如商品的价格,FLOAT 可能就足够了。但如果是科学计算中需要高精度的数值,如某些物理实验的数据,可能就需要使用 DOUBLE 类型。
3. DECIMAL 类型
用于存储具有固定精度和小数位数的数值。
DECIMAL(M,D) 是其常见的定义形式,其中 M 表示总的数字位数(包括小数点前面和后面的数字),D 表示小数点后面的数字位数。
例如,DECIMAL(5,2) 可以存储的数值范围是从 -999.99 到 999.99 。
DECIMAL 类型的主要优点是:
精度高:能够准确地表示小数,不会出现像浮点数(FLOAT 和 DOUBLE)那样的精度误差。
适合金融和货币相关的数据:在处理货币金额、精确计算等场景时,通常会选择 DECIMAL 类型,以确保数据的准确性。