Ios 使用NSNumberFormatter格式化十进制数
你好,我需要格式化用户在应用程序中输入的十进制数字,如Ios 使用NSNumberFormatter格式化十进制数,ios,objective-c,nsnumberformatter,decimalformat,Ios,Objective C,Nsnumberformatter,Decimalformat,你好,我需要格式化用户在应用程序中输入的十进制数字,如 100. = 100 90.00 = 90 90.1 = 90.1 90.22 = 90.22 90.227 = 90.23 如何使用NSNumberFormatter实现这一点 我使用这个自定义if-else条件实现了同样的效果 if ([cell.textField.text rangeOfString:@"."].location != NSNotFound) { NSString *strAfterD
100. = 100
90.00 = 90
90.1 = 90.1
90.22 = 90.22
90.227 = 90.23
如何使用NSNumberFormatter实现这一点
我使用这个自定义if-else条件实现了同样的效果
if ([cell.textField.text rangeOfString:@"."].location != NSNotFound)
{
NSString *strAfterDecimal = [cell.textField.text componentsSeparatedByString:@"."].lastObject;
NSInteger count = [strAfterDecimal length];
if(count == 0)
{
customField.value = [cell.textField.text
stringByReplacingOccurrencesOfString:@"." withString:@""];
}
else if(count == 1 || count == 2)
{
if([strAfterDecimal integerValue] > 0)
{
customField.value = cell.textField.text;
}
else
{
customField.value = [cell.textField.text componentsSeparatedByString:@"."].firstObject;
}
}
else if(count > 2)
{
if([strAfterDecimal integerValue] > 0)
{
customField.value = [NSString stringWithFormat:@"%0.2f",[cell.textField.text floatValue]];
}
else
{
customField.value = [cell.textField.text componentsSeparatedByString:@"."].firstObject;
}
}
}
我需要考虑一下密码。根据客户的说法,如果苹果公司提供的默认函数能够实现这些功能,我就不能添加额外的代码,这非常简单
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.maximumFractionDigits = 2;
NSNumber *number = [formatter numberFromString:cell.textField.text];
NSString *numberString = [formatter stringFromNumber:number];
if (numberString == nil) numberString = @"0";
NSLog(@"%@", numberString);
Swift版本有点复杂,因为您必须安全地打开选项
let formatter = NumberFormatter()
formatter.maximumFractionDigits = 2
let numberString : String
if let text = cell.textField.text,
let number = formatter.number(from: text),
let string = formatter.string(from: number) {
numberString = string
} else {
numberString = "0"
}
print(numberString)
这是否解决了以下要求:“90.00=90”@sketchyTech是的,它在vadian非常有用。它救了我一天。它根据我的要求工作。再次感谢。:)@瓦迪安:当然。移除它。