我在Objective C中通过简单的数学计算得到了一个意想不到的值.我输出了计算的三个不同部分以及下面的计算结果.
以下代码
NSLog(@"self.contentView.bounds.size.width: %f", self.contentView.bounds.size.width);
NSLog(@"SWATCHES_WIDTH: %f", SWATCHES_WIDTH);
NSLog(@"RIGHT_MARGIN: %f", RIGHT_MARGIN);
NSLog(@"(self.contentView.bounds.size.width - SWATCHES_WIDTH - RIGHT_MARGIN): %f", (self.contentView.bounds.size.width - SWATCHES_WIDTH - RIGHT_MARGIN));
Run Code Online (Sandbox Code Playgroud)
给出以下输出:
self.contentView.bounds.size.width:288.000000
SWATCHES_WIDTH:82.000000
RIGHT_MARGIN:12.000000
(self.contentView.bounds.size.width - SWATCHES_WIDTH - RIGHT_MARGIN):214.000000
我希望结果将是194而不是214(288-82-12 = 194).任何人都可以提供任何见解,为什么这是按照它的方式计算,我可以做些什么来解决它?谢谢!
据我所知,这三个值都是CGFloats.这两个常量定义如下:
#define SWATCHES_WIDTH SWATCH_SIZE * 3.0 + SPACE_BETWEEN * 2.0
#define RIGHT_MARGIN 12.0
Run Code Online (Sandbox Code Playgroud)
这个:
self.contentView.bounds.size.width - SWATCHES_WIDTH - RIGHT_MARGIN
Run Code Online (Sandbox Code Playgroud)
正在扩展到这个:
self.contentView.bounds.size.width - SWATCH_SIZE * 3.0 + SPACE_BETWEEN * 2.0 - RIGHT_MARGIN
Run Code Online (Sandbox Code Playgroud)
你真正想要的是:
self.contentView.bounds.size.width - SWATCH_SIZE * 3.0 - SPACE_BETWEEN * 2.0 - RIGHT_MARGIN
self.contentView.bounds.size.width - (SWATCH_SIZE * 3.0 + SPACE_BETWEEN * 2.0) - RIGHT_MARGIN
Run Code Online (Sandbox Code Playgroud)
您需要在其周围添加括号,以便正确扩展:
#define SWATCHES_WIDTH (SWATCH_SIZE * 3.0 + SPACE_BETWEEN * 2.0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
293 次 |
| 最近记录: |