Я пытаюсь сгенерировать случайное число от 1 до 0 для школьного проекта. Несколько мест говорят, что это должно быть сделано с использованием rand () и приведением к float. Что-то вроде следующего:
float x = ((float)rand()/(float)(RAND_MAX)) * a;
Тем не менее, я обнаружил, что всякий раз, когда я бросаю из int для float, число неверно. Эта проблема приводит к тому, что я получаю неправильные ответы, используя код выше
Код:
int rotlat = rand() % 1000;
double newrot = (double) rotlat;
printf("rotational latency: %d\n", rotlat);
printf("new rotational latency: %d\n", newrot);
Вывод:
rotational latency: 533
new rotational latency: -1841876320
rotational latency: 279
new rotational latency: -1841876320
rotational latency: 148
new rotational latency: -1841876320
rotational latency: 167
new rotational latency: -1841876320