美文网首页
iOS中常用函数

iOS中常用函数

作者: coming_168 | 来源:发表于2019-06-26 18:12 被阅读0次

    一些常用的函数用法:

    1. rand() / random() / arc4random() :随机数

    • rand()和random()实际并不是一个真正的伪随机数发生器,在使用之前需要先初始化随机种子,否则每次生成的随机数一样。
    • arc4random() 是一个真正的伪随机算法,不需要生成随机种子,因为第一次调用的时候就会自动生成。而且范围是rand()的两倍。在iPhone中,RAND_MAX是0x7fffffff (2147483647),而arc4random()返回的最大值则是 0x100000000 (4294967296)。
    • 精确度比较:arc4random() > random() > rand()
        1. rand():不常用
        srand((unsigned)time(0)); //不加这句每次产生的随机数不变
        NSLog(@"%d",rand());
    
        2. random():不常用
        srandom((unsigned)time(0)); //不加这句每次产生的随机数不变
        NSLog(@"%ld",random());
    
        3. 常用方法:arc4random()
        NSLog(@"%u",arc4random());
    
        3.1  获取一个随机整数范围在:[0,100)包括0,不包括100
        int x = arc4random() % 100;
    
        3.2 获取一个随机数范围在:[100,500],包括100,包括500
        int y = (arc4random() % 401) + 100;
    
        3.3 获取一个随机整数,范围在[start,end],包括start,包括end
        - (int)getRandomNumber:(int)a to:(int)b {
            // 代表从a开始连续(b - a + 1)个
            return (arc4random() % (b - a + 1)) + a;
        }
    
    

    2. abs() / labs() :处理int类型的取绝对值

        NSLog(@"%d",abs(-10));  // 10
        NSLog(@"%ld",labs(-10)); // 10
    

    3. fabs() / fabsf() / fabsl() :浮点数绝对值

        // 处理double类型的取绝对值
        double i = -9.99;
        NSLog(@"%.2f",fabs(i)); // 9.99
        // 处理float类型的取绝对值
        float j = -10.12;
        NSLog(@"%f",fabsf(j)); // 10.120000
        float k = -10.12;
        // 处理float类型的取绝对值
        NSLog(@"%.2Lf",fabsl(k)); // 10.12
    

    4. floor() / floorf() / floorl() :向下取整

        NSLog(@"%.2f",floor(9.6)); // 9.00
        NSLog(@"%.2f",floor(9.1)); // 9.00
    
        NSLog(@"%.2f",floorf(9.6)); // 9.00
        NSLog(@"%.2Lf",floorl(9.1)); // 9.00
    

    5. ceil() / ceilf() / ceill() :向上取整

        NSLog(@"%.2f",ceil(9.6)); // 10.00
        NSLog(@"%.2f",ceil(9.1)); // 10.00
    
        NSLog(@"%.2f",ceilf(9.6)); // 10.00
        NSLog(@"%.2Lf",ceill(9.1)); // 10.00
    

    6. round() / roundf() / roundl() :四舍五入

        NSLog(@"%.2f",round(9.6)); // 10.00
        NSLog(@"%.2f",round(9.1)); // 9.00
    

    7. sqrt() / sqrtf() / sqrtl() :返回平方根

        NSLog(@"%.2f",sqrt(25)); // 5.00
        NSLog(@"%.2f",sqrtf(64)); // 8.00
    

    8. pow() / powf() / powl() :返回幂次方

        // 返回2的10次方(2^10)
        NSLog(@"%.2f",pow(2.0, 10)); // 1024.00
    

    9. fmax() / fmaxf() / fmaxl() :返回最大值(两个数值比较)

        NSLog(@"%.2f",fmax(15,6)); // 15.00
    

    10. fmin() / fminf() / fminl() :返回最小值(两个数值比较)

        NSLog(@"%.2f",fmin(15,6)); // 6.00
    

    11. hypot() / hypotf() / hypotl() :返回直角三角形斜边的长度

        // 已知两个直角边的长度,求斜边长度
        NSLog(@"%.2f", hypot(3,4)); // 5.00
    

    12. fmod() / fmodf() / fmodl() :返回两参数相除的余数

        NSLog(@"%.2f", fmod(5,6));   // 5.00
        NSLog(@"%.2f", fmod(6,2));   // 0.00
        NSLog(@"%.2f", fmod(5,10));   // 5.00
    

    13. modf() / modff() / modfl() :浮点数分解为整数和小数

        double x, a, b;
        x = 8.123456;
        a = modf(x, &b); // 返回值 a 为小数部分(小数点后的部分),并设置 b 为整数部分
        
        NSLog(@"整数部分->%f", b); // 整数部分->8.000000
        NSLog(@"小数部分->%f", a); // 小数部分->0.123456
    

    14. frexp() / frexpf() / frexpl() :浮点数分解成2为底的指数和商值

        // 定义浮点数x,fraction为商值,n为次方
        double x = 1020, fraction;
        int n;
        // 通过函数frexp()可以获取如下数据
        fraction = frexp(x, &n);
        // 打印结果:
        NSLog(@"x = %f,fraction = %f, n = %d", x, fraction, n); // x = 1020.000000,fraction = 0.996094, n = 10
        //  商值:fraction = x / 2^n,fraction的范围是在[0, 1)区间
    

    15. sin() / sinf() / sinl() :求正弦值

        // 求30度角的正弦值
        NSLog(@"%f",sin(M_PI / 180 * 30)); // 0.500000
        // 求90度角的正弦值
        NSLog(@"%f",sin(M_PI / 180 * 90)); // 1.000000
    

    16. cos() / cosf() / cosl() :求余弦值

        // 求60度的余弦值
        NSLog(@"%.2f", cos(M_PI / 180 * 60)); // 0.50
        // 求90度的余弦值
        NSLog(@"%.2f", cos(M_PI / 180 * 90)); // 0.00
    

    17. tan() / tanf() / tanl() :求正切值

        // 求45度的正切值
        NSLog(@"%f", tan(M_PI / 180 * 45)); // 1.000000
        // 求60度的正切值
        NSLog(@"%f", tan(M_PI / 180 * 60)); // 1.732051
    

    18. sinh() / sinhf() / sinhl() :求双曲正弦值

    19. cosh() / coshf() / coshl() :求双曲余弦值

    20. tanh() / tanhf() / tanhl() :求双曲正切值

    21. asin() / asinf() / asinl() :求反正弦值

    22. asinh() / asinhf() / asinhl() :求反双曲正弦值

    23. acos() / acosf() / acosl() :求反余弦值

    24. acosh() / acoshf() / acoshl() :求反双曲余弦值

    25. atan() / atanf() / atanl() :求反正切值

    26. atan2() / atan2f() / atan2l() :求坐标值的反正切值

    27. atanh() / atanhf() / atanhl() :求反双曲正切值

    相关文章

      网友评论

          本文标题:iOS中常用函数

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