1

我正在我的一个标签中显示来自 plist 的数字(如果存在密钥)。如果我在 plist 中输入 98,90,它有时会将数字更改为 98,9000000000001。所以我想显示两位小数的数字,我正在尝试添加一个NSNumberFormatter来完成这项工作。但我不能让它工作,我需要一些帮助才能把它做好。这是我的尝试:

 NSString *theString = @"";
 if ([selectedObject valueForKey:@"75 cl"] != nil) {

     NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
     [formatter setPositiveFormat:@"###.##"];

     theString = [NSString stringWithFormat:@"75 cl € %@", [formatter stringFromNumber:[selectedObject valueForKey:@"75 cl"]]];
 }
 sevenfiveLabel.text = theString;
4

2 回答 2

1

格式字符串中的A#表示一个可选数字:格式化程序只会在需要时将一个数字放在那里。如果要强制它填充字符串,则需要0在格式字符串中使用 a 。

Format   Result
###.##   98.9
##0.00   98.90
000.00   098.90
于 2012-07-20T21:51:55.263 回答
1

您不需要使用NSNumberFormatter

NSString *theString = @"";
NSNumber *theNumber = [selectedObject valueForKey:@"75 cl"];

if (theNumber) {
    theString = [NSString stringWithFormat:@"75 cl € %.2f", [theNumber floatValue]];
}

sevenfiveLabel.text = theString;
于 2012-07-20T21:56:44.903 回答