【发布时间】:2013-03-13 23:14:50
【问题描述】:
我在这里问这个问题是因为我相信这更像是一个程序问题。
我正在使用 TI-84 Plus Sliver 版计算器,其中包含可以测试小于、大于和相等的逻辑运算符。我发现当我输入表达式时:
2^34 == 2^34 - 1
它给了我一个令人惊讶的 1 为真。值得一提的是,我的计算器无法精确输出 2^34 的结果。相反,它使用指数表示法和任何其他大于 33 的幂。这是布尔输出中的潜在因素吗?
此外,只有当第二个表达式减去 1 到 9 时,相等性测试才会返回 true。当数字 >= 10 时,它会正确返回 false。
可能是舍入错误吗?为什么这个表达式返回 true?
【问题讨论】:
-
这是一个舍入错误...
-
TI-84 不是只有 8 位精度吗?
-
ya 1.99999999999
-
无论精度如何,计算器都应该能够将表达式简化为 (0 == 1) 并返回
false。
标签: math floating-point decimal