From the C++11 header , I was wondering if a std::uniform_real_distribution<double>
object can spit out a double that's greater than 0.99999999999999994? If so, multiplying this value by 2 would equal 2.
Example:
std::default_random_engine engine;
std::uniform_real_distribution<double> dist(0,1);
double num = dist(engine);
if (num > 0.99999999999999994)
num = 0.99999999999999994;
int test1 = (int)(0.99999999999999994 * 2);
int test2 = (int)(0.99999999999999995 * 2);
std::cout << test1 << std::endl; // 1
std::cout << test2 << std::endl; // 2