plist中的数字,使用NSNumberFormatter显示两位小数

时间:2012-07-20 21:45:59

标签: iphone xcode nsstring nsnumber nsnumberformatter

我正在我的一个标签中显示一个数字(如果密钥存在)。如果我在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;

2 个答案:

答案 0 :(得分:1)

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

Format   Result
###.##   98.9
##0.00   98.90
000.00   098.90

答案 1 :(得分:1)

您不需要使用NSNumberFormatter

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

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

sevenfiveLabel.text = theString;