浮点数计算为什么有误差?

2024-05-12

  1. 浮点数实际的组成是 符号位(1) + 指数位(8) + 尾数(23), 在单精度浮点数下, 总共32位二进制, 看具体系统位数.
  2. 用二进制表达 符号位*(2**指数)*尾数 === 浮点数的实际值,等于符号位(sign bit)乘以指数偏移值(exponent bias)再乘以分数值(fraction)
  3. 所以,用来表达 0.1 的其实是最接近 0.1 的数字,但不代表是 0.1

自然地, 用接近的数字进行计算当然会产生误差.

半精度是5位指数, 单精度是8位, 双精度是11位

转换器理解

半精度转换过程: 半精度转换过程

copyright ©2019-2024 shenzhen
粤ICP备20041170号-1