首页 > 解决方案 > 可以用浮点数表示的最小/最大数字

问题描述

如何计算可以用二进制 16、32、64 IEEE 754 浮点数表示的最小/最大十进制数?

标签: floating-pointprecision

解决方案


正常范围是:

  • 16 位(半精度):±6.10e-5 至 ±65504.0
  • 32 位(单精度):±1.18e−38 至 ±3.4e38
  • 64 位(双精度):±2.23e−308 至 ±1.80e308

如果您也允许 DENORMALS,则最小值为:

  • 16 位:±5.96e-8
  • 32 位:±1e-45
  • 64 位:±5e-324

永远记住,仅仅因为一个数字在这个范围内并不意味着它可以被精确地表示。在任何范围内,由于基数原因,浮点数必然会跳过值。经典的例子是1/3它在任何有限精度下都没有精确的表示。一般来说,您只能精确地表示那些被称为“二元”的数字,即对于某些 A 和 B 的形式为 A/2^B 的数字;只要结果落入动态范围内。


推荐阅读