Подтвердить что ты не робот

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

заблаговременно

4b9b3361

Ответ 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.