如何舍入浮点值并将其转换为iPhone SDK中的NSInteger值?

mon*_*ish 11 objective-c

我需要舍入一个浮点值并将其转换为NSInteger值.

例如:

float f = 90.909088;
Run Code Online (Sandbox Code Playgroud)

我希望结果是91.如何摆脱这个?

Jer*_*myP 19

以下C数学函数之一可能适合您:

  • 双层(双层)
  • 双层(双层)
  • doubleintint(双)
  • 双色(双)
  • 双轮(双)
  • long int lrint(double)
  • long int lround(double)
  • long long int llrint(double)
  • long long int llround(double)
  • 双截(双)

要获取更多文档,请打开终端会话并键入(例如)

man lround
Run Code Online (Sandbox Code Playgroud)

我选择lround作为例子,因为我认为那是你想要的.


小智 19

快速回合和强制转换将适用于负值和积极因素:

NSInteger intValue = (NSInteger) roundf(f);
Run Code Online (Sandbox Code Playgroud)