Cod*_*Guy 40 iphone floating-point objective-c rounding ios
我怎样才能将浮点数舍入到Objective-C中最接近的整数:
例:
float f = 45.698f;
int rounded = _______;
NSLog(@"the rounded float is %i",rounded);
Run Code Online (Sandbox Code Playgroud)
应打印"圆形浮子是46"
Jon*_*pan 148
使用C标准功能系列round().roundf()for float,round()for double和roundl()for long double.然后,您可以将结果转换为您选择的整数类型.
Dav*_*ave 27
建议的方法是在这个答案:https://stackoverflow.com/a/4702539/308315
原始答案:
添加0.5后将其强制转换为int.
所以
NSLog (@"the rounded float is %i", (int) (f + 0.5));
Run Code Online (Sandbox Code Playgroud)
编辑:您要求的方式:
int rounded = (f + 0.5);
NSLog (@"the rounded float is %i", rounded);
Run Code Online (Sandbox Code Playgroud)
用于舍入float到最接近的整数roundf()
roundf(3.2) // 3
roundf(3.6) // 4
Run Code Online (Sandbox Code Playgroud)
您还可以使用ceil()函数来始终获取上限值float.
ceil(3.2) // 4
ceil(3.6) // 4
Run Code Online (Sandbox Code Playgroud)
而且价值最低 floor()
floorf(3.2) //3
floorf(3.6) //3
Run Code Online (Sandbox Code Playgroud)
在objective-c中舍入浮点数的最简单方法是lroundf:
float yourFloat = 3.14;
int roundedFloat = lroundf(yourFloat);
NSLog(@"%d",roundedFloat);
Run Code Online (Sandbox Code Playgroud)