float格式变量,字符串中包含整数值

时间:2011-09-29 07:52:40

标签: iphone objective-c

我面临一个小问题,我想知道:为什么?

这里我们有一些字符串:

[NSString stringWithFormat@"%.3f/%.3f/%.3f/%i", 1.0, 1.0, 1, 1];

在这种情况下,结果是1.000 / 1.000 / 1 / abra-kadabra,如34875689 。 为什么会这样?当然,我知道,当我们将第三个值更改为1.0时,一切都会好起来的。 那么,请解释一下这个操作的深层过程。

1 个答案:

答案 0 :(得分:2)

由于您编写了%f,编译器需要float,但会识别int。写1而不是1.0告诉编译器它是一个整数常量而不是1.0,这是一个浮点常量。