生成0-x之间的随机正整数(要随机种子(随机种子为int类型))
int value =arc4random_uniform(x + 1); //(x+1)必须为int类型
生成随机正整数(不需要随机种子,范围:0~0x100000000)
int value = arc4random()
通过arc4random() 获取0到x-1之间的整数的代码如下:
int value = arc4random() % x;
获取1到x之间的整数的代码如下:
int value = (arc4random() % x) + 1;
最后如果想生成一个浮点数,可以在项目中定义如下宏:
#define ARC4RANDOM_MAX 0x100000000
然后就可以使用arc4random() 来获取0到100之间浮点数了(精度是rand()的两倍),代码如下:
double val = floorf(((double)arc4random() / ARC4RANDOM_MAX) * 100.0f);
解析
在iPhone中,RAND_MAX是0x7fffffff (2147483647),而arc4random()返回的最大值则是 0x100000000 (4294967296),从而有更好的精度。此外,使用arc4random()还不需要生成随机种子,因为第一次调用的时候就会自动生成。
通过arc4random()获取0到x-1之间的整数的代码如下
.....int value = arc4random()%x;
获取1到x之间的证书的代码如下
.....int value = (arc4random()%x )+1
注意
ceil:如果参数是小数,则求最小的整数但不小于本身.
extern float ceilf(float);
extern double ceil(double);
extern long double ceill(long double);
round:如果参数是小数,则求本身的四舍五入。
extern float roundf(float);
extern double round(double);
extern long double roundl(long double);
floor:如果参数是小数,则求最大的整数但不大于本身.
extern float floorf(float);
extern double floor(double);
extern long double floorl(long double);
实例
Example:如何值是3.4的话,则
3.4 -- round 3.000000
-- ceil 4.000000
-- floor 3.00000