floating-point - float 是如何存储的?什么时候重要?

标签 floating-point rounding-error

跟进this question ,看来有些数字根本无法用 float 表示,而是用近似值表示。

float 是如何存储的?

不同尺寸有通用标准吗?

如果使用浮点,需要注意哪些问题?

它们是否跨语言兼容(即,我需要处理哪些转换才能通过 TCP/IP 将 float 从 python 程序发送到 C 程序)?

最佳答案

如上所述,Wikipedia article on IEEE 754很好地展示了 float 在大多数系统上的存储方式。

现在,这里有一些常见的问题:

  • 最大的问题是您几乎不想比较两个 float 是否相等(或不相等)。您需要使用大于/小于比较。
  • 对 float 进行的运算越多,舍入误差就越大。
  • 精度受到分数大小的限制,因此您可能无法正确添加相隔几个数量级的数字。 (例如,您无法将 1E-30 添加到 1E30。)

关于floating-point - float 是如何存储的?什么时候重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56947/

相关文章:

floating-point - 除以整数时最小化舍入误差

vb.net - 我如何处理 vb.net 中 double 的舍入错误?

PHP 截断小数点

python - 如何使用 Theano 将列中的最大值替换为 1.0?

Python 关于舍入的奇怪行为

c - 如何使用 NaN 处理无效数据的可能性

c# - ToString ("f2"中的 .NET 舍入错误)

c - 错误 : invalid operands to binary expression ('float' and 'float' )

java - double 和 float 据类型的行为

json - Haskell Text.Json包可以读但不能写Rationals?