2015-04-28 6 views
2

Я пытаюсь добавить 0.01 к моей метке каждый раз, когда я нажимаю кнопку, но когда я делаю это, она выводит: 0.010000 вместо 0.01?Добавление к поплавке или двойному

Вот мой код:

//.h

@property (nonatomic, assign) double userPoints; 

//.m

- (IBAction)myButton 
{ 
self.userPoints = self.userPoints + 0.01; 
self.myLabel.text = [NSString stringWithFormat:@"%lf", self.userPoints]; 
} 

ответ

7

Вы должны сообщить своему поплавок выходить только два знака после запятой, используя % .2, например:

self.myLabel.text = [NSString stringWithFormat:@"%.2lf", self.userPoints]; 
+1

Works. Спасибо –

+0

Я рад помочь, что, как правило, бросает много новых программистов! :) – John

4

В то время как использование строковых строк стиля C будет работать, если это пользователь, находящийся под контролем, скорее всего, лучше для более локализуемого решения.

Посмотрите на NSNumberFormatter. Нечто подобное должно работать:

NSNumberFormatter *formatter = [NSNumberFormatter new]; 
[formatter setNumberStyle: NSNumberFormatterDecimalStyle]; 
[formatter setMaximumFractionDigits: 2]; 
self.myLabel.text = [formatter stringFromNumber: @(self.userPoints)]; 

(сохранение форматировщика как член будет более эффективным тоже ...)

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