添加到浮点数或双精度数

时间:2015-04-28 20:26:16

标签: objective-c

我每次按下按钮时都会尝试在我的标签上添加0.01但是当我这样做时输出:0.010000而不是0.01?

这是我的代码:

//。h

@property (nonatomic, assign) double userPoints;

//。米

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

2 个答案:

答案 0 :(得分:7)

你需要通过使用%。2来告诉你的浮点数只能输出两位小数:

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

答案 1 :(得分:4)

虽然使用C样式格式字符串会起作用,但如果这是一个面向控件的用户,那么对于更加本地化的解决方案来说它可能更好。

看看NSNumberFormatter。这样的事情应该有效:

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

(将格式化程序保存为成员也会更有效......)