当前位置:  开发笔记 > IOS > 正文

如何在Objective C中将float转换为int?

如何解决《如何在ObjectiveC中将float转换为int?》经验,为你挑选了4个好方法。

总新手问题,但这让我很生气!我正在尝试这个:

myInt = [myFloat integerValue]; 

但我得到一个错误,说基本上integerValue不适用于浮点数.

我该怎么做?



1> unwind..:

我很确定C风格的转换语法在Objective C中有效,所以也尝试一下:

int myInt = (int) myFloat;

它至少可能会使编译器警告静音.


@GabrielMolter看看`roundf` - 它将舍入到最接近的整数:)

2> Alnitak..:

有什么不对:

int myInt = myFloat;

请记住,这将使用默认的舍入规则,即向零(即-3.9f变为-3)



3> Hermann Klec..:
int myInt = (int) myFloat;

为我工作得很好.

int myInt = [[NSNumber numberWithFloat:myFloat] intValue];

嗯,这是一个选择.如果你喜欢绕行,我可以想到一些使用NSString.当有复杂的替代方案时,为什么容易?:)



4> jmcharnes..:

你也可以用C的lroundf(myFloat).


一个非常有用的提示:在Xcode的编辑器中,输入你的代码

myInt = roundf(someFloat);

然后控制/右键单击roundf跳转到定义(或简单地按住命令单击).

然后,您将清楚地看到可用的功能列表.(所有人都不可能记住它们,所以只需使用这个技巧.)

例如,在手头的例子中,很可能lrintf就是你想要的.

进一步提示:获取有关这些功能的文档.在你的Terminal.app(或任何shell - 与Xcode无关,只是普通的Terminal.app)只需键入man lrintf,它将为您提供完整的信息.希望它可以帮助某人.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有