美文网首页iOS开发笔记
iOS 截取小数指定位数方法

iOS 截取小数指定位数方法

作者: 张俊凯 | 来源:发表于2019-01-11 12:19 被阅读20次

    here is the code

    /**
     基础计算 截取指定小数位数 时间耗时较少
     */
    + (NSString *)getRoundFloat:(double)floatNumber withPrecisionNum:(NSInteger)precision {
        
        // 0.123456789  精度2
        
        //core foundation 的当前确切时间
        CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();
        
        //精度要求为2,算出 10的2次方,也就是100,让小数点右移两位,让原始小数扩大100倍
        double fact = pow(10,precision);//face = 100
        //让小数扩大100倍,四舍五入后面的位数,再缩小100倍,这样成功的进行指定精度的四舍五入
        double result = round(fact * floatNumber) / fact; // result = 0.12
        //组合成字符串 @"%.3f"   想要打印百分号%字符串 需要在前面加一个百分号 表示不转译
        NSString *proString = [NSString stringWithFormat:@"%%.%ldf",(long)precision]; //proString = @"%.2f"
        // 默认会显示6位 多余的n补0,所以需要指定显示多少小数位  @"%.2f" 0.123000
        NSString *resultString = [NSString stringWithFormat:proString,result];
        
        //time实际上是一个double
        CFAbsoluteTime end = CFAbsoluteTimeGetCurrent();
    
        NSLog(@"time cost: %0.6f", end - start);
        
        return resultString;
        
    }
    

    源码地址:https://github.com/zhangjk4859/iOSFactory

    相关文章

      网友评论

        本文标题:iOS 截取小数指定位数方法

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