Object-C 经过随机数并四舍五入保留两位小数获取NSNumber

Object-C 通过随机数并四舍五入保留两位小数获取NSNumber

在学习Object-C 过程中碰到需要生成随机数的,并且还要保留小数点后指定位数,往上搜索没有一个统一的答案, 自己尝试过后如下解决

首先从c代码测试来看结果

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main (int argc, const char * argv[])
{

    int i;
    srand((unsigned int) time(NULL));
    for(i=0;i<9;i++){        
        printf("%.2f\n",(float)(rand()%100001)*0.001f);
    }
    
    return 0;
}
 

 

这样就生成了我要的100以内的随机数,我还需要一些负数,所以就最后还要减去50

 

NSNumber* tempnumber = [NSNumber numberWithDouble:[[NSString stringWithFormat:@"%.2f",
                                                  (float)(rand()%100001)*0.001f -20] doubleValue]];