【发布时间】:2020-11-12 06:12:28
【问题描述】:
我正在尝试打印随机浮点(32 位)值。为此,我尝试使用uniform_real_distribution。我写了以下代码,
int main()
{
std::random_device rd{};
std::mt19937 gen{rd()};
std::uniform_real_distribution<float> dist(-1e18,1e18);
float random_val = dist(gen);
printf("%.20f\n", random_val);
return 0;
}
现在,输出很奇怪。我得到的只是非常大的数字(总是接近上限或下限),没有分数。以下是我看到的一些输出,
-149399166081040384.00000000000000000000
128349565723082752.00000000000000000000
-323890424458510336.00000000000000000000
802221481969844224.00000000000000000000
817395979383734272.00000000000000000000
他们总是这样,我改变界限也没关系。这里有什么问题?
【问题讨论】:
标签: c++ random distribution