[objective-c] Сделать поплавок показывать только два десятичных знака


Answers

Вот несколько исправлений -

//for 3145.559706

Swift 3

let num: CGFloat = 3145.559706
print(String(format: "%f", num)) = 3145.559706
print(String(format: "%.f", num)) = 3145
print(String(format: "%.1f", num)) = 3145.6
print(String(format: "%.2f", num)) = 3145.56
print(String(format: "%.02f", num)) = 3145.56 // which is equal to @"%.2f"
print(String(format: "%.3f", num)) = 3145.560
print(String(format: "%.03f", num)) = 3145.560 // which is equal to @"%.3f"

Obj-C ,

@"%f"    = 3145.559706
@"%.f"   = 3146
@"%.1f"  = 3145.6
@"%.2f"  = 3145.56
@"%.02f" = 3145.56 // which is equal to @"%.2f"
@"%.3f"  = 3145.560
@"%.03f" = 3145.560 // which is equal to @"%.3f"

и так далее...

Question

У меня значение 25.00 в float , но когда я печатаю его на экране, оно составляет 25.0000000 .
Как отобразить значение только с двумя знаками после запятой?




 lblMeter.text=[NSString stringWithFormat:@"%.02f",[[dic objectForKey:@"distance"] floatValue]];



Другой метод для Swift (без использования NSString):

let percentage = 33.3333
let text = String.localizedStringWithFormat("%.02f %@", percentage, "%")

PS это решение не работает с типом CGFloat, проверенным только с помощью Float & Double




в объекте -c вы хотите отобразить значение float в 2 десятичных числах, затем передать аргумент, указывающий, сколько десятичных точек u хотите отобразить, например, 0.02f будет печатать 25.00 0.002f будет печатать 25.000




IN object-c, если вы имеете дело с регулярными массивами char (вместо указателей на NSString), вы также можете использовать:

printf("%.02f", your_float_var);

OTOH, если вы хотите сохранить это значение в массиве символов, вы можете использовать:

sprintf(your_char_ptr, "%.02f", your_float_var);



В Swift Language, если вы хотите показать, вам нужно использовать его таким образом. Чтобы назначить двойное значение в UITextView, например:

let result = 23.954893
resultTextView.text = NSString(format:"%.2f", result)

Если вы хотите показать в LOG, как объектно-c, используя NSLog (), то в Swift Language вы можете сделать так:

println(NSString(format:"%.2f", result))



Related