【问题标题】:Octave: Number too large for mod()八度:数字对于 mod() 来说太大了
【发布时间】:2014-01-03 02:17:50
【问题描述】:

八度音阶

> mod(10^15 + 1, 2)
ans =  1

如预期的那样,但是

> mod(10^16 + 1, 2)
ans =  0

对于更大的数字也是如此。

我假设如果数字太大,第一个操作数将被评估为Inf,结果将给出NaN。为什么这里发生了不同的事情? mod 的 Octave 函数参考没有提及任何内容。

【问题讨论】:

    标签: octave modulo


    【解决方案1】:

    10^16 + 1 恰好计算为 10^16,因为 +1 对于正在使用的 64 位浮点表示来说太小了。这是一个舍入错误的情况。

    因为即使是 10^16,您实际上也可以从 mod 获得正确的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 2013-06-15
      • 1970-01-01
      • 2019-07-29
      • 2012-07-22
      • 1970-01-01
      • 2013-06-07
      相关资源
      最近更新 更多