_screen.brightness = _screen.brightness - 0.1;这行代码给了我一个意想不到的结果。
当我调用NSLog(@"%.2f", _screen.brightness - 0.1);命令时,它会打印
-0.00值。当我测试这个if (_screen.brightness == 0)时,它给出了NO。
为什么会发生这种情况?有没有转换的问题?
下面是我在_screen对象的类中的访问器方法:
- (CGFloat)brightness {
return 1 - _dimmingView.alpha;
}
- (void)setBrightness:(CGFloat)brightness {
if (brightness < self.minValue || brightness > self.maxValue) {
return;
}
_dimmingView.alpha = 1 - brightness;
}发布于 2011-09-20 00:14:35
浮点算术并不一定能给出你想要的精确答案。比我在这里解释过的更好的人:C# float bug? 0.1 - 0.1 = 1.490116E-08。一种不同的语言,但要点是相同的。
https://stackoverflow.com/questions/7473970
复制相似问题