2011-07-11 3 views
1
label.text = [NSString stringWithFormat:@"%.2f",final]; 

Вышеприведенный оператор отображает значение поплавка, доступное в переменной «final» с двумя цифрами после десятичной точки.Пользовательские плавающие десятичные точки

Я хочу, чтобы отобразить количество десятичных знаков в зависимости от числа я даю переменную целого, как этот

label.text = [NSString stringWithFormat:@"%.if",j,final] 

Здесь J является целой переменной. Каким бы ни был номер, который я взял для j, это количество десятичных знаков, которое оно должно отображать. Мне нужен правильный синтаксис для отображения приведенного выше утверждения.

+0

Прояснить ситуацию. какой вы хотите. что такое J значение? какова конечная стоимость? и что вы хотите в качестве выхода. –

ответ

0

Я не знаю, если есть один вкладыш, который будет делать то, что вы хотите, но вы всегда можете сделать:

NSString* formatString = [NSString stringWithFormat: @"%%.%if", j]; 
label.text = [NSString stringWithFormat:formatString, final]; 
+0

Благодарим Вас за всех – Uday

2

NSNumberFormatter имеет возможность делать то, что вы хотите. Любой из следующих методов может быть задан с использованием переменной перед форматированием строки.

- (void)setMinimumIntegerDigits:(NSUInteger)number 
- (void)setMinimumFractionDigits:(NSUInteger)number 
- (void)setMaximumIntegerDigits:(NSUInteger)number 
- (void)setMaximumFractionDigits:(NSUInteger)number 

Data Formatting Guide - Number Formatters

0

Вы можете использовать NSNumberFormatter,

NSNumberFormatter *nf = [[NSNumberFormatter alloc] init]; 
[nf setFormatterBehavior:NSNumberFormatterBehaviorDefault]; 
[nf setNumberStyle:NSNumberFormatterDecimalStyle]; 
[nf setMaximumFractionDigits:j]; // Set the number of decimal places here 

label.text = [nf stringFromNumber:[NSNumber numberWithFloat:final]]; 

[nf release]; 
4

В IEEE printf spec что Apple follows состояний:

ширину поля, или точность, или оба, могут быть указанная звездочкой ('*'). В этом случае аргумент типа int предоставляет ширину поля или точность.

Это означает, что

label.text = [NSString stringWithFormat:@"%.*f",j,final] 

может работать, но у меня нет платформы доступной, чтобы проверить это прямо сейчас.

+0

+1! Вау! Большой! – EmptyStack

+0

+1 Хороший ответ! – Joe

+0

+1 Я никогда не знал, что вы можете сделать это раньше. – JeremyP

Смежные вопросы