Me *_*d I 1 math floating-point decimal
我在这里问这个问题是因为我认为这更像是一个程序问题而不是其他问题.
我正在使用TI-84 Plus Sliver Edition计算器,该计算器包含可以测试小于,大于和平等的逻辑运算符.我发现当我输入表达式时:
2^34 == 2^34 - 1
Run Code Online (Sandbox Code Playgroud)
它给了我一个令人惊讶的真实.值得一提的是,我的计算器无法精确输出2 ^ 34的结果.相反,它使用指数表示法和任何其他大于33的幂.这是布尔输出中的潜在因素吗?
此外,如果第二个表达式减去1到9,则相等性测试仅返回true.当数字> = 10时,则正确返回false.
这可能是一个舍入错误吗?为什么这个表达式返回true?
你的计算器无法跟踪那些大的数字.
每个计算器都有一个设定的精度水平(比方说10位数).计算器给出的每个答案都是四舍五入的,这样答案就会有很多数字,然后它会根据需要移动小数位,以使数字大或小(在你的情况下非常大).
您的数字太大,当您减去1时,会导致第10位后的更改.然后再回到你的开始,然后进行比较.很自然地,它认为它们是相同的数字(达到其能力的精度).