Как я могу объединить float с ближайшим целым числом в Objective-C:
Пример:
float f = 45.698f;
int rounded = _______;
NSLog(@"the rounded float is %i",rounded);
должен печатать "округленный поплавок 46"
Как я могу объединить float с ближайшим целым числом в Objective-C:
Пример:
float f = 45.698f;
int rounded = _______;
NSLog(@"the rounded float is %i",rounded);
должен печатать "округленный поплавок 46"
Рекомендуемый способ в этом ответе: fooobar.com/questions/142197/...
Оригинальный ответ:
передайте его в int после добавления 0.5.
Итак,
NSLog (@"the rounded float is %i", (int) (f + 0.5));
Изменить: способ, которым вы просили:
int rounded = (f + 0.5);
NSLog (@"the rounded float is %i", rounded);
Используйте семейство стандартных функций C round()
. roundf()
для float
, round()
для double
и roundl()
для long double
. Затем вы можете применить результат к целочисленному типу по вашему выбору.
Самый простой способ объединить float в objective-c - lroundf
:
float yourFloat = 3.14;
int roundedFloat = lroundf(yourFloat);
NSLog(@"%d",roundedFloat);
Проверьте страницу руководства для rint()
Если в случае, если вы хотите, чтобы значение round float в целочисленном ниже было простым методом округления значения float в объекте C.
int roundedValue = roundf(Your float value);
Для раунда float
до ближайшего целого используйте roundf()
roundf(3.2) // 3
roundf(3.6) // 4
Вы также можете использовать функцию ceil()
, чтобы всегда получать верхнее значение от float
.
ceil(3.2) // 4
ceil(3.6) // 4
И для самого низкого значения floor()
floorf(3.2) //3
floorf(3.6) //3
//Your Number to Round (can be predefined or whatever you need it to be)
float numberToRound = 1.12345;
float min = ([ [[NSString alloc]initWithFormat:@"%.0f",numberToRound] floatValue]);
float max = min + 1;
float maxdif = max - numberToRound;
if (maxdif > .5) {
numberToRound = min;
}else{
numberToRound = max;
}
//numberToRound will now equal it closest whole number (in this case, it 1)