Kotlin中if判断条件看似为false却进入代码块问题求助
问题原因解答
你对科学计数法的含义理解有误,才会出现大小判断错误的情况,实际代码运行逻辑完全正常:
1.57756888292539E14表示 1.57756888292539 × 10的14次方,换算为普通十进制数值为1577568882925397.8364593205657E13表示 7.8364593205657 × 10的13次方,换算为普通十进制数值为78364593205657
对比两个换算后的数值,显然157756888292539 > 78364593205657,所以tempDeltaDeviation > standardDeltaDeviation的判断条件成立,程序进入if分支执行是符合预期的。
你也可以记住科学计数法快速比大小的规则:优先对比E后面的指数,指数大的数值一定更大,只有指数相同的情况下才需要对比前面的系数。本次示例中前者指数为14,后者为13,仅看指数就能判断前者数值更大。
内容的提问来源于stack exchange,提问作者Beesz
相关产品推荐
相关产品推荐

