//单元测试通过 /** * 四舍五入并保留N位小数 * * @param number 数值字符串 * @param afterPoint 第几位小数 * * @return 处理后结果 */ +(NSString *)halfUpDecimalNumber:(NSString *)number afterPoint:(int)position { /* Mode的枚举类型 NSRoundPlain, // 四舍五入 NSRoundDown, // 只舍不入 NSRoundUp, // 不舍只入 NSRoundBankers // */ if ([number length]==0) { return @""; } NSDecimalNumber *ouncesDecimal = [NSDecimalNumber decimalNumberWithString:number]; NSString *[email protected]"0."; for (int i=0; i<position; i++) { formatStr=[formatStr stringByAppendingString:@"0"]; } NSNumberFormatter *doubleValueWithMaxTwoDecimalPlaces = [[NSNumberFormatter alloc] init]; [doubleValueWithMaxTwoDecimalPlaces setNumberStyle:NSNumberFormatterDecimalStyle]; [doubleValueWithMaxTwoDecimalPlaces setPaddingCharacter:@""]; [doubleValueWithMaxTwoDecimalPlaces setPaddingPosition:NSNumberFormatterPadAfterSuffix]; [doubleValueWithMaxTwoDecimalPlaces setFormatWidth:position]; [doubleValueWithMaxTwoDecimalPlaces setPerMillSymbol:@""]; [doubleValueWithMaxTwoDecimalPlaces setAlwaysShowsDecimalSeparator:YES]; [doubleValueWithMaxTwoDecimalPlaces setGroupingSeparator:@""]; [doubleValueWithMaxTwoDecimalPlaces setRoundingMode:NSNumberFormatterRoundHalfUp]; [doubleValueWithMaxTwoDecimalPlaces setPositiveFormat:formatStr]; return [doubleValueWithMaxTwoDecimalPlaces stringFromNumber:ouncesDecimal]; }
时间: 2024-10-08 15:40:05