【问题标题】:Abrupt behaviour of KDB Real typeKDB Real 类型的突然行为
【发布时间】:2017-11-29 02:23:50
【问题描述】:

比较浮点数和实数时遇到问题。以下是一些示例:

KDB 版本:2.7 (2012-02-20)

  1. 4.7e = 4.7f
    输出:假

    原因:Kdb 将 4.7e 转换为 4.6999998e

    所以,4.7e 输出:真

  2. 4.347e = 4.347f

    输出:假

    原因:4.347e 被转换为 4.3470001e

    所以,4.347e>4.347f ---> 输出:真

我不确定这里发生了什么。你尝试的例子越多,你就会得到更多的答案。

【问题讨论】:

  • 在此处查看关于 浮点 数字和算术主题的问题和答案。如果有人告诉您阅读 Goldberg 的论文每个计算机科学家都应该了解浮点运算的知识,请忽略它们。

标签: kdb


【解决方案1】:

kdb wiki 上也有一些特定信息(不确定您是否已经看过它们)

http://code.kx.com/q/cookbook/precision/#float-precision

http://code.kx.com/q/cookbook/precision/#comparison-tolerance

【讨论】:

  • 谢谢。我经历了这些,它有助于获取一些信息。所以基本上浮动值本身就有问题。
  • 不,您关于浮动值本身存在问题的结论是错误的。问题来自对计算机算术将匹配数学算术的不知情期望。
  • 我的意思是,只有涉及浮动值的操作才会有问题,并且不会像我们预期的那样。
猜你喜欢
  • 2021-12-26
  • 2016-04-08
  • 1970-01-01
  • 1970-01-01
  • 2011-03-14
  • 2014-03-01
  • 2021-11-14
  • 1970-01-01
  • 2020-06-02
相关资源
最近更新 更多