You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

机器精度与下溢的差异:单精度系统相关技术疑问

机器精度与下溢的区别(单精度示例)

这俩是完全不同的两个指标,别搞混了:

  • 下溢阈值:就是系统能表示的最小正非零数值,单精度的1.18×10^-38意思是,任何比这个数还小的正数,电脑会直接当成0处理(这就是下溢)。它管的是「数值能小到什么程度」。
  • 机器精度:准确说是相对机器精度,指的是能和1区分开的最小正数ε——也就是满足1 + ε ≠ 1的最小ε,单精度约为10^-7。它管的是「计算时的相对准确度」,说白了就是有效数字能保留几位。

为什么精度远大于下溢阈值?

单精度浮点数是拆成符号位、指数位、尾数位(有效数字位)来存储的:

  • 下溢阈值能做到极小,是因为指数位可以取到最小的负数值,把整个数的数量级压得极低,但尾数位的有效数字位数还是只有23位(单精度固定值),并没有增加。
  • 机器精度对应的是指数位为0(对应数值在1附近)时,尾数位最后一位能表示的最小增量。这个增量是基于1的比例计算的,数值为1 × (2^-23)≈1.19×10-7,也就是约10-7,对应单精度约7位有效数字的精度。

举个直观的例子:

  • 你能写出0.00000000000000000000000000000000000001(接近10^-38),但用这个数做加法运算时,比如加上另一个同量级的数,你没法保证最后几位有效数字是准确的——因为单精度只能保留约7位有效数字。
  • 反过来,1 + 0.0000001(10^-7)系统能区分出和1的差异,但1 + 0.00000005就会被当成1,这就是机器精度的限制。

简单总结:下溢管的是「能存多小的数」,机器精度管的是「存的数能有多准」,两者描述的是浮点数系统的不同维度,本来就没有必然的大小对应关系。

内容的提问来源于stack exchange,提问作者stancallewier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 17:25:38