Object-Cは乱数と四捨五入により2桁の小数を保持してNSNumberを取得する

820 ワード

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
",(float)(rand()%100001)*0.001f); } return 0; }
 
 
これで私が欲しい100以内の乱数が生成され、負の数が必要になるので、最後に50を減算します.
 
NSNumber* tempnumber = [NSNumber numberWithDouble:[[NSString stringWithFormat:@"%.2f",
                                                  (float)(rand()%100001)*0.001f -20] doubleValue]];