为什么浮点乘法显示为0

qua*_*ato 1 floating-point objective-c uiscreen

float yLimit = [[UIScreen mainScreen] bounds].size.height;
yLimit = yLimit * (2/3);
NSLog(@"ylimit: %f", yLimit);
Run Code Online (Sandbox Code Playgroud)

nslog产生0.0.

咦?

uch*_*aka 6

换句话说,2和3是隐式整数类型.当⅔除法发生时,你得到整数除法.零.没有剩余.没有四舍五入.

然后你将浮点数乘以该结果.

这里的教训是你应该明确地输入你的文字.C有文字的后缀来帮助你解决这个问题.

对于人类阅读代码而言,它实际上与编译器一样重要.