小编sta*_*pax的帖子

可以std :: uniform_real_distribution <double>(0,1)返回大于0.99999999999999994的值吗?

从C++ 11标题,我想知道一个std::uniform_real_distribution<double>对象是否可以吐出一个大于0.99999999999999994的双精度?如果是这样,将该值乘以2将等于2.

例:

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
Run Code Online (Sandbox Code Playgroud)

c++ random double double-precision c++11

4
推荐指数
1
解决办法
281
查看次数

标签 统计

c++ ×1

c++11 ×1

double ×1

double-precision ×1

random ×1