我正在尝试将 srand 与时间一起用于随机值。如果我看 srand 函数需要 unsigned int - 但如果我们用 time 初始化它,它似乎有 long long 值 - 所以编译器一直提示精度丢失警告。有更好的做事方式吗?
// srand definition
void srand (unsigned int seed);
// using srand with time to seed random value
srand(time(NULL));
警告 712:(信息 -- 精度损失(arg. 1)(long long 到 unsigned int))
最佳答案
如果您使用的是 C++,请查看 <random>
.它有更好的 PRNG。
如果您限于 rand
, 在这种情况下,您可以忽略警告,或者更好的是,通过显式转换 (unsigned)time(NULL)
告诉编译器您不关心.
关于c++ - 精度损失 - 使用 srand 时发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31712750/