mininal需要二进制浮点常数的十进制精度

时间:2015-07-23 17:36:01

标签: floating-point ieee-754

问题:

假设我们有一些任意十进制数(如1.3456),它与最后一位的(十进制)单位完全相同。我们需要多少个地方,没有两个二进制浮点数落入十进制数的不精确范围:

  • IEEE 754单精度
  • IEEE 754双精度
  • (随意考虑其他格式)

另一种询问方式可能是(如果我认为正确的话):需要多少个位置,从常数到浮点的最近2舍入导致所有十进制数的浮点数相同十进制数的不精确范围?但我不确定它是否更清楚。

背景: 当我以十进制常量的形式得到(或给出)范围要求时(比如,为了与限制进行比较),总是假设这些常量在机器格式中的表示。当谈到浮点时,我通常会在我的规范中写下类似的东西:"常数限制被认为是IEEE-754单精度常数。"但如果想要对这些限制进行精确测试,这无济于事。

1 个答案:

答案 0 :(得分:0)

感谢用户asa,我很清楚,在this picture relevant wikipedia article中,我的眼前是{75}浮点数。

对于我的用例,我只是使用30位数字(因为它很容易记住作为一个常见规则),或者从数学上确切的数字中得到30位,并告诉我的测试人员我假设"舍入到最近的"。

另外,为了更准确地关注此问题,请参阅the blog post

中提到的njuffa's comment