Округление чисел в Objective C

Потому что дизайнеры не решили его поддерживать. Это действительно будет действительно (насколько я вижу), но все существующие умные приведения применяются только к проверенному значению. Так что, вероятно, было бы нетривиально добавить, и как часто это будет использоваться?

Этот вид уточнения типов поддерживается обобщенными алгебраическими типами данных , которые поддерживаются в Haskell и OCaml (и в некоторой степени в Scala), но их система типов и вывод типов весьма отличаются Котлин.

74
задан dreamlax 15 April 2009 в 22:12
поделиться

5 ответов

Спасибо всем за указатели, мне удалось найти решение:

float roundedValue = round(2.0f * number) / 2.0f;
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setMaximumFractionDigits:1];
[formatter setRoundingMode: NSNumberFormatterRoundDown];

NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:roundedValue]];
[formatter release];

Вышеуказанное работает для тестовые случаи, которые я бросил на это, но если кто-нибудь знает лучший способ сделать это, мне было бы интересно услышать это!

100
ответ дан 24 November 2019 в 11:49
поделиться
NSString *numberString = [NSString stringWithFormat:@"%f", round(2.0f * number) / 2.0f];
32
ответ дан 24 November 2019 в 11:49
поделиться

Я бы порекомендовал изучить использование NSNumberFormatter .

8
ответ дан 24 November 2019 в 11:49
поделиться

Используйте lroundf (), чтобы округлить число с плавающей запятой до целого, а затем преобразовать целое число в строку.

24
ответ дан 24 November 2019 в 11:49
поделиться
NSString *numberString = [NSString stringWithFormat:@"%d",lroundf(number)];
11
ответ дан 24 November 2019 в 11:49
поделиться