Как округлить десятичное число в 2 десятичных знака в Objective-C

Позвольте мне знать, как округлить десятичное число в 2 десятичных знака в Objective-C.

Я хотел бы сделать вот так. (все числа, следующие за предложением, являются значением float)

• round

10.118 = > 10.12

10.114 = > 10.11

• ceil

10.118 = > 10.12

• пол

10.114 = > 10.11

Спасибо за проверку моего вопроса.

Ответ 1

Если вам действительно нужно число, которое нужно округлить, а не только при его представлении:

float roundToN(float num, int decimals)
{
    int tenpow = 1;
    for (; decimals; tenpow *= 10, decimals--);
    return round(tenpow * num) / tenpow;
}

Или всегда до двух знаков после запятой:

float roundToTwo(float num)
{
    return round(100 * num) / 100;
}

Ответ 2

Вы можете использовать приведенный ниже код для его форматирования до двух знаков после запятой

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterDecimalStyle;
formatter.setMaximumFractionDigits = 2;
formatter.setRoundingMode = NSNumberFormatterRoundUp;

NSString *numberString = [formatter stringFromNumber:@(10.358)];
NSLog(@"Result %@",numberString); // Result 10.36

Ответ 3

float roundedFloat = (int)(sourceFloat * 100 + 0.5) / 100.0;