IEEE 754 浮点解析器
输入任意十进制小数,按 DataView 真实写入内存拆出 符号位、指数位、尾数位,展示精确存储值与误差;支持位串/十六进制反向还原数值。点预设按钮直观看懂 0.1 + 0.2 ≠ 0.3 的原因。
十进制 → 内存位模式
位串 / 十六进制 → 数值
提示:本页位序按 bit31 → bit0(符号位在最高位)书写,与 IEEE 754 标准图示一致。
为什么 0.1 + 0.2 不等于 0.3?
十进制 0.1 转成二进制是无限循环小数(0.0001100110011…),浮点尾数只有 23/52 位,必须舍入存储。0.1 与 0.2 各自带着舍入误差相加,结果的二进制恰好更接近 0.30000000000000004 而不是 0.3 的最近存储值。用本页对比 0.1+0.2 预设与 0.3 预设的尾数位即可看出差异。
工程对策:金额用整数分或 decimal 类型;比较浮点用容差(abs(a-b) < 1e-9)而非相等判断。
float32 vs float64 对比
同一个输入分别按单精度与双精度写入内存,并列展示存储值、十六进制编码与绝对/相对误差,最后一行给出两者误差数量级差值。
| 精度 | 存储值 | 十六进制 | 绝对误差 | 相对误差 |
|---|
相对误差随数量级变化(自绘 SVG)
以 1.23456789012345 × 10^e(e = −6 … 6)采样,对每个样本分别计算 float32 / float64 的相对舍入误差,纵轴为 log10(相对误差)。
位域布局(自绘 SVG)
按位域宽度比例绘制 float32(1 + 8 + 23)与 float64(1 + 11 + 52),当前解析精度整行高亮;右侧标注偏移量与隐含前导 1。
方案管理 · 数值对比 · 导出
调好的参数可存成方案随时载入,也能生成可分享链接;结果里的数值列会自动画成对比图,并支持导出 CSV / JSON。

还没有留言,来抢沙发吧!