【问题标题】:mininal needed decimal precision for binary floating point constants二进制浮点常量所需的最小十进制精度
【发布时间】:2015-10-14 04:11:39
【问题描述】:

问题:

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

  • IEEE 754 单精度
  • IEEE 754 双精度
  • (也可以考虑其他格式)

另一种询问方式可能是(如果我认为正确的话):需要多少个位置,从常量到浮点的第 2 轮最近的结果对于十进制数的不精确范围?但我不确定它是否更清晰。

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

【问题讨论】:

标签: floating-point ieee-754


【解决方案1】:

感谢用户 asa commet,我很清楚,答案就在我眼前,this picturerelevant wikipedia article 中用于 IEEE 754 浮点数。

对于我的用例,我只使用 30 位数字(因为作为一个通用规则很容易记住),或者从数学上精确的数字中推导出 30 个数字,然后告诉我的测试人员我假设“四舍五入到最接近” .

有关此问题的更精确聚焦,请参阅njuffa's comment 中提到的the blog post

【讨论】:

    猜你喜欢
    • 2014-08-14
    • 2016-08-17
    • 2013-12-16
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    • 2015-10-11
    • 2021-05-04
    • 2021-09-10
    相关资源
    最近更新 更多