Как округлить десятичное число в 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;