Как напечатать float
в Objective-C как, например, 3.45
вместо 3.45555555555
?Как распечатать форматированный поплавок в obj-c?
ответ
Попробуйте форматировать поплавок так:
NSLog(@"%.2f", myFloat);
%
знак означает, что это будет заменено соответствующим аргументом следующее (myFloat
). Значение .2
означает 2 знака после запятой, а f
означает тип данных float
.
Посмотрите here для более подробной информации.
Objective-C-х NSLog
очень похож на C-х printf
, с основными исключениями в том, что вы должны использовать строку Objective-C буквального (@"…"
), и вы должны использовать %@
для строк Objective-C (NSString
сек), а не %s
, что соответствует "Plain C strings"
.
Это может сработать. Мне нужно, чтобы он был динамичным. –
@Austin - Что вы подразумеваете под динамикой? Можете ли вы отредактировать свой пост и объяснить это? – sch
Я имею в виду, как @Jack Stone, '% g'. –
Зависит от того, как вы его печатаете. Если вы хотите показать его в графическом интерфейсе (который, вероятно, является распространенным случаем для приложений Cocoa и Cocoa Touch), используйте NSNumberFormatter и установите для него два десятичных знака. Если вы печатаете его через NSLog() или printf(), вы должны использовать format specifier по строкам «% .2f».
Возможный дубликат [как установить значение с плавающей точкой в два десятичных числа в объективе C] (http://stackoverflow.com/questions/560517/how-to-set-the-float-value-to-two- decimal-number-in-objective-c) –