我在文本字段中显示一个数字。其中显示数字为“1234”,但我想以“1,234”的格式显示它,如果我输入显示为“12345”的另一个大号,但如果我输入123456,我想显示为“12345”显示为“123,456”。如何以所需格式格式化此数字?
-(void)clickDigit:(id)sender
{
NSString * str = (NSString *)[sender currentTitle];
NSLog(@"%@",currentVal);
if([str isEqualToString:@"."]&& !([currentVal rangeOfString:@"."].location == NSNotFound) )
{
return;
}
if ([display.text isEqualToString:@"0"])
{
currentVal = str;
[display setText:currentVal];
}
else if([currentVal isEqualToString:@"0"])
{
currentVal=str;
[display setText:currentVal];
}
else
{
if ([display.text length] <= MAXLENGTH)
{
currentVal = [currentVal stringByAppendingString:str];
NSLog(@"%@",currentVal);
[display setText:currentVal];
}
currentVal=display.text;
}
}
这是我用来在文本字段中显示数字的代码。
编辑:我将我的代码更改为以下内容,但仍然无法正确格式化数字:
if ([display.text length] <= MAXLENGTH) {
currentVal = [currentVal stringByAppendingString:str];
NSNumberFormatter * myNumFormatter = [[NSNumberFormatter alloc] init];
[myNumFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *tempNum = [myNumFormatter numberFromString:currentVal];
NSLog(@"My number is %@",tempNum);
[display setText:[tempNum stringValue]];
currentVal=display.text;
}
答案 0 :(得分:1)
你可以这样做:
int myInt = 12345;
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterDecimalStyle;
NSNumber *number = [NSNumber numberWithInt:myInt];
NSLog(@"%@", [formatter stringFromNumber:number]); // 12,345
修改强>
您没有正确实现此功能,关键是使用[formatter stringFromNumber:number]
获取数字的字符串表示形式,但您没有这样做。所以将代码更改为:
currentVal = [currentVal stringByAppendingString:str];
NSNumberFormatter * myNumFormatter = [[NSNumberFormatter alloc] init];
[myNumFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *tempNum = [myNumFormatter numberFromString:currentVal];
NSLog(@"My number is %@",tempNum);
[display setText:[myNumFormatter stringFromNumber:tempNum]]; // Change this line
currentVal=display.text;
NSLog(@"My formatted number is %@", currentVal);
答案 1 :(得分:0)
首先,阅读NSNumberFormatter reference page上的方法列表。执行此操作后,您可能会意识到需要使用-setHasThousandSeparators:
方法打开千位分隔符功能。您也可以使用-setThousandSeparator:
方法设置自定义分隔符,但您可能不需要这样做。