我想在用户输入值时格式化文本字段文本。它工作得很好,但我的问题是,如果用户在小数点后按 1 然后按 2。我的替换字符串是“12”。那时 numbar 是 12 。我不能取小数点..
NSNumber* number = [numberFormatter numberFromString:string];
这是我的完整代码,
#pragma mark textfieldDelgate
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSLocale *locale=[[NSLocale alloc]initWithLocaleIdentifier:@"en_GB"];
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setLocale:locale];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSString *text = [textField text];
NSString *replacementText = [text stringByReplacingCharactersInRange:range withString:string];
NSMutableString *newReplacement = [[ NSMutableString alloc ] initWithString:replacementText];
NSString *currencyGroupingSeparator = numberFormatter.currencyGroupingSeparator;
[newReplacement replaceOccurrencesOfString:currencyGroupingSeparator withString:@"" options:NSBackwardsSearch range:NSMakeRange(0, [newReplacement length])];
NSNumber * number = [numberFormatter numberFromString:newReplacement];
if (number == nil && [replacementText length]!=0) {
return NO;
}
NSLog(@"%@",newReplacement);
text = [numberFormatter stringFromNumber:number];
[textField setText:text];
return NO;
}
我还附上了截图。如何用十进制值格式化字符串......在此先感谢