IOS вокруг поплавка
У меня есть число с плавающей запятой, у которого больше десятичных цифр, например:
float fRes = 10.0 / 3.0;
Фактически значение fRes равно 3.3333333333333
он может быть установлен, например, на две десятичные цифры:
float fRes = 10.0 / 3.0;
// fRes is 3.333333333333333333333333
float fResOk = FuncRound( fRes, 2 );
// fResOk is 3.33
заблаговременно
Ответы
Ответ 1
Предполагая, что вы ищете правильную функцию для округления до определенного количества цифр, вам, вероятно, будет легче всего сделать следующее:
fResOk = roundf( fRes*100.0)/100.0;
Это умножит значение на 100
(дающее вам 2 цифры значимости), округляя значение, а затем уменьшит его до величины, с которой вы первоначально начали.
Ответ 2
Я не знаю, где вы используете этот округленный номер, но вы должны округлять свое значение только при отображении его пользователю, существуют способы форматирования строк на основе C для округления чисел с плавающей запятой, например
[NSString stringWithFormat:@"%.2f", value];
как вы, возможно, уже читали, число с плавающей запятой - это приближения действительных чисел, поэтому fResOk = roundf( fRes*100.0)/100.0;
может не дать вам 3.33, а число, которое так же близко, как вы можете получить с числом с плавающей запятой до 3.33.