在 objective-c 中使用带有 NSLog() 变量的有趣输出

Interesting output using variables with NSLog() in objective-c

以下代码:

int N = 100;
double total_time = 100;
double dt = total_time/N;
NSLog(@"Answer: %d", dt);

给出了一个有趣的输出:5766 而不是 1。

仅在添加

的情况下
NSLog(@"Answer: %f", dt);

输出正确答案。但是,我想输出 "double" 值而不是 "float"。我的期望和语法有什么问题?

%d 表示 "decimal representation of int",而不是 "double"。

您总是使用 %f 输出双精度值,因为 NSLog() 有一个开放的参数列表。在这种情况下,所有浮点数都作为双精度数传递。所以你应该把 %f 读成 "floating point number" 而不是 float.

%d 和 %i 是一回事,都是十进制整数格式。