首页 > 解决方案 > Kotlin,即使条件为假,代码也会进入 if statemant

问题描述

我在这里真的很困惑......看起来像一个非常愚蠢的错误,但我不知道发生了什么。这是我的代码的一小段:

if (tempDeltaDeviation > standardDeltaDeviation) {
                        Log.e(TAG, "handleMessage: plus $tempDeltaDeviation : $standardDeltaDeviation")
                        scaleUpAnimation(deltaAnimStep, "Delta", binding.deltaImg)
}

真的是基本的东西,对吧?检查日志,我可以看到:

handleMessage: plus 1.57756888292539E14 : 7.8364593205657E13

不知道,但上次我检查 1 远小于 7 那么为什么应用程序输入 if 语句?

标签: androidkotlinif-statement

解决方案


1.57756888292539E14实际上大于7.8364593205657E13

这些数字以科学记数法表示,用于处理非常小或非常大的数字。1.57756888292539E14意思是:1.57756888292539 * 10^14。通过将后面的数字E增加一,我们实际上将结果数字增加了 10 倍。通过将其增加 6,我们将结果数增加一百万倍 (10^6 = 1000000)。

让事情变得简单,你的数字真的是:

  • 157756888292539 (1.57756888292539 * 100000000000000)
  • 78364593205657 (7.8364593205657 * 10000000000000)

如您所见,第一个数字实际上更大。


推荐阅读