我试图在文本字段中显示类似1,000,000.99而不是1000000.99的内容,因为用户在文本字段中输入了数字。我已经看过其他问题了,没有一个能真正满足我的需求。码。我现在有以下内容。我正在尝试在我现有的基础上添加新代码。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
int countDots = (int)[textField.text componentsSeparatedByString:(@".")].count-1;
if (countDots > 0 && [string isEqual: @"."]) {
return NO;
} else if ([textField.text length]>12 && [string length] > range.length) {
return NO;
} else{
return YES;
}
}
现在,我的条件检查'仅1个小数'和最大'12位'。我希望能够添加逗号
答案 0 :(得分:2)
您可以使用
NSNumberFormatter *formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; // important line!
NSString *formatted = [formatter stringFromNumber:[NSNumber numberWithInteger:4000000]];
希望有所帮助
答案 1 :(得分:0)
NSNumberFormatter
类就是为此而设计的。
你应该能够做到这一点......
NSNumberFormatter *nf = [NSNumberFormatter new];
nf.perMillSymbol = @",";
然后,当你想要你的字符串时,你可以做...
textfield.text = [nf stringFromNumber:@1000000000000.95];