iOS开发笔记

iOS 截取小数指定位数方法

2019-01-11  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读