截取小数点位数最多保留n位并去掉多余的0

@interface NSString (Helper)

/**
 *  截取小数点位数,最多保留digit位,且小数点后多余的0将被去掉.
 *
 *  @param digit 小数点后最多保留位数
 *
 *  @return 返回一个截取后的小数字符串对象
 */
- (NSString *)floatStringTruncateWithMaxReservedDecimalPointDigit:(NSInteger)digit;

@end
@implementation NSString (Helper)

- (NSString *)floatStringTruncateWithMaxReservedDecimalPointDigit:(NSInteger)digit
{
    if (self.length == 0) {
        return @"0";
    }
    
    if ([self rangeOfString:@"."].length == 0) {    //不是小数
        return self;
    }
    
    NSMutableString *formatString = [NSMutableString stringWithString:@"%.f"];
    [formatString insertString:[NSString stringWithFormat:@"%ld", (long)digit] atIndex:2];
    NSString *truncatedStr = [NSString stringWithFormat:formatString, self.floatValue];
    NSString *rs = [NSString stringWithFormat:@"%@", @(truncatedStr.floatValue)];
    return rs;
}

@end
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容