需求:显示需要保留小数点前两位,小数点后两位。
/**
* 截取
*
* @param text 文本
* @param preInt 保留小数点前几位
* @param decInt 保留小数点后几位
*/
- (NSString*)subStringWithString:(NSString*)text subPre:(NSInteger)preInt subDec:(NSInteger)decInt{
NSString *result = @"";
if (!text || [text isEqualToString:@""]) {
return result;
}
NSArray *array = [text componentsSeparatedByString:@"."];
if (!array || array.count<=0) {
return result;
}
//有小数(包含.12、0.12、12.、12.0的情况)
if (array.count==2) {
NSString *intValue = @"";
NSString *floatValue = @"";
NSString *intText = [array objectAtIndex:0];
NSString *floatText = [array objectAtIndex:1];
intValue = intText.length>=preInt ? [intText substringWithRange:NSMakeRange((intText.length - preInt), preInt)]:intText;
floatValue = floatText.length>=decInt ? [floatText substringWithRange:NSMakeRange(0, decInt)]:floatText;
intValue = [intValue isEqualToString:@""]? @"0":intValue;
floatValue = [floatValue isEqualToString:@""]? @"0":floatValue;
if ([intValue isEqualToString:@"0"] && [floatValue isEqualToString:@"0"]) {
result = @"";
}else{
result = [NSString stringWithFormat:@"%@.%@",intValue,floatValue];
}
}
//没有小数
if (array.count==1) {
NSString *intText = [array objectAtIndex:0];
result = intText.length>=preInt ? [intText substringWithRange:NSMakeRange((intText.length - preInt), preInt)]:text;
}
return result;
}
网友评论