重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 77|回复: 0
打印 上一主题 下一主题

浮点数值数据 到底是什么意思

[复制链接]
跳转到指定楼层
楼主
发表于 2026-3-24 17:22:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 郑全 于 2026-3-24 17:25 编辑

在ORACLE中,对这个概念不强烈,在其他一些数据库,总是看到这个 浮点数 类型,到底这个浮点数 是什么呢?

浮点数值数据”这个名称,核心就藏在 “浮点” 二字里——小数点的位置是“浮动”的,不固定的。
🌰 一句话说清本质它是一种用 “科学计数法”思想 存储实数的方式:
将数字拆成 “有效数字(尾数) + 指数” 两部分,通过调整指数让“小数点”在有效数字中“浮动”,从而用有限的存储空间表示极大或极小的数,但会带来微小的精度误差。


🔍 为什么叫“浮点”?直观例子表格

十进制科学计数法
小数点“浮动”过程
123.45
→ 1.2345 × 10² (小数点左移2位,“浮”到1后面)
0.00123
→ 1.23 × 10⁻³ (小数点右移3位)

在计算机中(二进制):
5.5 存储为 1.011 × 2²(二进制科学计数法)
→ “小数点”位置由指数 2 动态决定,故称“浮点”。


❓ 为什么会有“精度误差”?
  • 根源:计算机用二进制存储,但很多十进制小数(如 0.1)在二进制中是无限循环小数(类似十进制中 1/3 = 0.333...)。
  • 结果:必须“截断”存储 → 产生微小误差
    1
    0.1 + 0.2  # 实际存储 ≈ 0.30000000000000004


💡 在数据库中意味着什么?当你在表中定义:

price FLOAT;  -- 或 DOUBLE, REAL

  • 存入 0.1,数据库实际存的是 最接近 0.1 的二进制近似值
  • 适合:传感器读数、科学计算(误差可接受)
  • 致命陷阱:绝不能用于金额!10.00 - 9.99 可能 ≠ 0.01

一句话分清关键概念表格

类型
小数点位置
精度
典型用途
浮点数
浮动(由指数决定)
近似(有误差)
科学计算、物理量
定点数(如 DECIMAL)
固定(如保留2位小数)
精确
金钱、计数




✅ 记住这个比喻:
浮点数像“用米尺量银河系”——能覆盖极大范围(从原子到宇宙),但量一张纸的厚度时会有毫米级误差;
定点数像“用游标卡尺量零件”——范围小,但每0.01毫米都精准。
“浮点” = 小数点会“漂移”,用灵活性换范围,代价是微小误差。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-4-18 09:08 , Processed in 0.213385 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表