美文网首页
iOS - 两位内的有效位小数

iOS - 两位内的有效位小数

作者: HanZhiZzzzz | 来源:发表于2021-12-20 16:54 被阅读0次

网上很多代码的10050 会返成1.00 ,其实应该是1。
之前我也是直接复制的网上的代码,结果测试反馈了这个问题。
这段代码修复了这个问题

// 显示2位内有效位小数
NSString *formatFloat(float f)
{
    if (fmodf(f, 1)==0) {//余数无小数
        return [NSString stringWithFormat:@"%.0f",f];
    }else if (fmodf(f*10, 1)==0) {// f*10的情况下 余数为0。返回一位小数
        return [NSString stringWithFormat:@"%.1f",f];
    }else if (fmodf(f*100, 1)==0) {// f*100的情况下 余数为0。返回两位小数
        return [NSString stringWithFormat:@"%.2f",f];
    }else {
        NSString *str =  [NSString stringWithFormat:@"%.2f",f];
        if ([[str substringWithRange:NSMakeRange(str.length - 1, 1)] isEqualToString:@"0"]) {
            str = [str substringWithRange:NSMakeRange(0, str.length - 1)];
            
            if ([[str substringWithRange:NSMakeRange(str.length - 1, 1)] isEqualToString:@"0"]) {
                str = [str substringWithRange:NSMakeRange(0, str.length - 2)];
            }
        }
        
        return str;
    }
}

相关文章

网友评论

      本文标题:iOS - 两位内的有效位小数

      本文链接:https://www.haomeiwen.com/subject/snezfrtx.html