【发布时间】:2010-09-13 22:52:10
【问题描述】:
这可能是非常简单的事情,但我没有得到我期望的结果。如果这是一个愚蠢的问题,我深表歉意,我只是不知道谷歌的目的。
最简单的解释方法是使用一些代码:
int var = 2.0*4.0;
NSLog(@"%d", 2.0*4.0);//1
NSLog(@"%d", var);//2
if ((2.0*4.0)!=0) {//3
NSLog(@"true");
}
if (var!=0) {//4
NSLog(@"true");
}
这会产生以下输出:
0 //1
8 //2
true //3
true //4
我不明白的是//1 行。为什么所有其他人都将浮点数转换为int(我假设正确的词是“casting”,如果我错了,请纠正我)将float转换为int,但在NSLog内部却没有发生。这是否与字符串格式%d 参数有关,并且它很挑剔(因为没有更好的词)?
【问题讨论】:
标签: objective-c c