RAND_MAX是C中stdlib.h中宏定义的一个字符常量:
一般情况下会定义为
#define RAND_MAX Ox7FFF
其值最小为0,最大为32767
但是在GNU LIBRARY 定义为2147483647
所以用double 转换然后再加1 防止溢出
((double) rand() / ((double) RAND_MAX + 1)
不能用加完再类型转换 已经丢失了精度
本文详细介绍了C语言中RAND_MAX宏的定义及其在生成随机数时可能遇到的问题,特别是如何避免double类型转换带来的精度损失,确保生成的随机数范围准确无误。
2147483647
所以用double 转换然后再加1 防止溢出
((double) rand() / ((double) RAND_MAX + 1)
不能用加完再类型转换 已经丢失了精度
1949

被折叠的 条评论
为什么被折叠?