【问题标题】:'Less than' comparison with tolerance“小于”与公差的比较
【发布时间】:2013-11-10 19:51:38
【问题描述】:

我正在尝试编写一些代码来计算 a 是否小于具有 n 位容差的 b,其中 ab 是双精度变量。

例如,4.000000001 < 4.00000001 将是 TRUE,但 4.0000000001 < 4.000000001 将是 FALSE3.99999999 < 4.00000000 也将是 FALSE。另请注意,ab 可能为负数。

【问题讨论】:

  • 您是要比较某个容差,还是真的要比较前 n 位数字? 4.000000000
  • 对不起,我措辞不正确。我的意思是说具有 n 位容差
  • 你可以看看eps。您可以获得适用于不同数据类型的各种容差(例如eps('single')
  • 没有一个答案对我有用。

标签: matlab math precision numerical


【解决方案1】:

这应该可行:

ndigits = 7;
round(a*10^ndigits) < round(b*10^ndigits) 

【讨论】:

    【解决方案2】:

    如果你真的在寻找&lt; 关系,我会这样做

    x < y + tolerance
    

    其中容差是一个值,它指示哪些值高于 y 应计为低于

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-14
      • 2016-10-04
      • 1970-01-01
      • 2016-01-24
      • 2018-07-17
      • 2018-11-17
      • 1970-01-01
      • 2019-07-07
      相关资源
      最近更新 更多