vendredi 9 août 2019

How to fix rand()/RAND_MAX in a method that always produces 0.0000000?

I need to produces numbers between 0 and a max (seen in code as assetMax). In the code, the rand()/RAND_MAX always produces 0 and I cannot seem to figure out why. I use the rand() function immediately before it to produce values in a range and it works completely fine. However, here it does not.

I have tried to switch the order of the variables, create the random number in a separate double before multiplying the two, and the header.

void cPortfolio::randomize(cProblem &portfolioProblem) {

  int assetCount = 6 * rand() / RAND_MAX + (portfolioProblem.assetMax-8); //this line works as expected
  int test; 
  for (int i = 0; i < assetCount; i++) {
      double num = rand() / RAND_MAX;  //this always produces 0.0000
      int test = num * (portfolioProblem.assetNum);   } `} //cannot format these correctly please ignore the brackets




Aucun commentaire:

Enregistrer un commentaire