float x = x + 0.25;
这个持股量将被称为每次点击发生
的NSLog时间(@ “%F” X);
我想要的NSLog来只返回整数部分,这样
x return
1.25 1
1.50 1
3.25 3
4.75 4
任何想法?
float x = x + 0.25;
这个持股量将被称为每次点击发生
的NSLog时间(@ “%F” X);
我想要的NSLog来只返回整数部分,这样
x return
1.25 1
1.50 1
3.25 3
4.75 4
任何想法?
如果浮点数超出范围int
,转换为int
将不起作用。
使用"%.0f"
打印不会截断,因此4.75会打印为5
。
如果你的编译器(更准确的说,你的运行时库)支持它们的trunc()
,truncf()
,并且truncl()
功能,<math.h>
宣布,你想要什么:
printf("%.0f\n", trunc(x));
这些功能在C99是新,所以你的编译器可能不支持它们。 C90确实提供floor()
功能;如果您为负数编写一些特殊情况代码,则可以使用该代码。
您可以把X作为一个int(投):
NSLog("%d", (int)x);
注意:这将不圆,它将截断值,只返回整数部分。
编辑:请注意,这不是一个安全的方式来截断所有可能的浮动值,它将适用于小值虽然(那些拟合在int
)。
但是,如果x超出'INT_MIN' ..'INT_MAX'范围,它将会失败。 –
如果您愿意,可以使用long long或unsigned来根据需要增加可用范围。 – jv42
在我听说的每个实现中,最大的整数类型太窄而无法保存最窄的浮点类型的全部范围。还有'trunc()'。 –