在 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 是一回事,都是十进制整数格式。
以下代码:
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 是一回事,都是十进制整数格式。