这实际上是我遇到过的最奇怪的事情。所以,我有一个浮点数ratingDecimal
,我使用一些条件来比较它。以下是条件:
if (ratingDecimal >= 0.0) {
if (ratingDecimal < 0.3 && ratingDecimal != 0.3) {
ratingDecimal = 0.0;
NSLog(@"bigger or equal to 0 and smaller than 0.3");
}
}
if (ratingDecimal >= 0.3) {
if (ratingDecimal < 0.8 && ratingDecimal != 0.8) {
ratingDecimal = 0.5;
NSLog(@"middle");
}
}
if (ratingDecimal >= 0.8) {
NSLog(@"bigger or equal to 0.8");
ratingDecimal = 1.0;
}
这是一个奇怪的问题。我已将其设置ratingDecimal
为 0.8,控制台记录ratingDecimal
为:
0.8
但调用:
中间
ratingDecimal
仅当大于或等于 0.3 但小于 0.8 且不等于 0.8时才应调用。
应该被调用的语句是:
if (ratingDecimal >= 0.8) {
NSLog(@"bigger or equal to 0.8");
ratingDecimal = 1.0;
}
但我没有看到
大于或等于 0.8
您可能想知道为什么我的条件如此繁琐和复杂,它们可以很简单:
if (ratingDecimal >= 0.3 < 0.8)
他们曾经是这样的,但由于这从来没有奏效,我一直在打破这个声明,它仍然表现得很奇怪。
为什么会这样!?
这是一个图像示例: