android - 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 语句?
解决方案
1.57756888292539E14
实际上大于7.8364593205657E13
。
这些数字以科学记数法表示,用于处理非常小或非常大的数字。1.57756888292539E14
意思是:1.57756888292539 * 10^14
。通过将后面的数字E
增加一,我们实际上将结果数字增加了 10 倍。通过将其增加 6,我们将结果数增加一百万倍 (10^6 = 1000000)。
让事情变得简单,你的数字真的是:
- 157756888292539 (1.57756888292539 * 100000000000000)
- 78364593205657 (7.8364593205657 * 10000000000000)
如您所见,第一个数字实际上更大。
推荐阅读
- android - 在模块 jetified-hamcrest-core-1.3.jar 中发现重复的类 org.hamcrest.BaseDescription
- java - Postgres:将自定义类型从 Java 传递给 postgres 函数
- css - Angular - 单击按钮后更改表中行的背景颜色
- android - facebook sdk 还需要在 android 上手动初始化吗?
- java - 将自定义元数据添加到二进制文件
- java - 测试期间spring webflux中的全局异常处理
- flutter - 在颤振中解析JSON数组
- android - 未定义的类 DatabaseReference
- google-app-maker - 我想合并两张表并将它们显示为一张表
- html - Go template/html 将变量传递给嵌套模板