使用NSNumberFormatter
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
+ (NSString*) removeTrialZero:(NSString*)strData | |
{ | |
NSRange range = [strData rangeOfString:@"."]; | |
int digits; | |
if (range.location != NSNotFound) { | |
digits = [strData length]; | |
} else { | |
range = [strData rangeOfString:@"e-"]; | |
if (range.location != NSNotFound) { | |
digits = [strData intValue]; | |
} else { | |
digits = 0; | |
} | |
} | |
//小數後面沒有東西 | |
if (digits == 0) { | |
return strData; | |
} | |
/* | |
http://stackoverflow.com/questions/7469614/remove-more-than-2-trailing-zero | |
*/ | |
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; | |
[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; | |
//原來小數後面幾位數就保留幾位數 | |
[formatter setMaximumFractionDigits:digits]; | |
//小數後面最小零位,這樣就可以把多餘的0剔除了 | |
[formatter setMinimumFractionDigits:0]; | |
[formatter setUsesGroupingSeparator:YES]; | |
[formatter setGroupingSeparator:@","]; | |
[formatter setGroupingSize:3]; | |
NSNumber *strDataNumber = [formatter numberFromString:strData]; | |
if (strDataNumber == nil) { | |
return nil; | |
} | |
NSString *resultString = [formatter stringFromNumber:strDataNumber]; | |
[formatter release]; | |
return resultString; | |
} |