全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-15 6 分钟 ✍️ juanwangdev

MySQL 浮点数类型

MySQL 浮点数类型用于存储带小数的数值,分近似值和精确值两类。

类型对照表

类型字节精度用途
FLOAT4单精度科学计算
DOUBLE8双精度科学计算
DECIMAL可变精确值金额计算

基本语法

SQL
-- 浮点数定义
CREATE TABLE measurements (
    temp FLOAT,
    distance DOUBLE,
    price DECIMAL(10, 2)  -- 总共10位,小数2位
);

-- 插入数据
INSERT INTO measurements VALUES (36.5, 1234.5678, 99.99);

FLOAT 与 DOUBLE

SQL
-- FLOAT 单精度(约7位有效数字)
CREATE TABLE sensor_data (
    temperature FLOAT,
    humidity FLOAT
);

-- DOUBLE 双精度(约15位有效数字)
CREATE TABLE scientific_data (
    measurement DOUBLE,
    coefficient DOUBLE
);

DECIMAL 精确值

SQL
-- DECIMAL 用于金额等需要精确计算的场景
CREATE TABLE orders (
    id INT,
    amount DECIMAL(10, 2),    -- 最大99999999.99
    tax_rate DECIMAL(5, 4)    -- 如 0.0825
);

INSERT INTO orders VALUES (1, 1234.56, 0.0825);

-- 精确计算示例
SELECT amount * tax_rate AS tax FROM orders WHERE id = 1;

金额等财务数据必须使用 DECIMAL,避免 FLOAT/DOUBLE 的精度丢失。

要点总结

  • FLOAT/DOUBLE 是近似值,可能存在精度丢失
  • DECIMAL 是精确值,适合金额计算
  • DECIMAL(M, D) 中 M 是总位数,D 是小数位数
  • 科学计算用 FLOAT/DOUBLE,财务计算用 DECIMAL

📝 发现内容有误?点击此处直接编辑

← 上一篇 MySQL 枚举与集合类型
下一篇 → MySQL 创建数据库
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库