RAND_MAX+1 会溢出

来源:互联网 发布:日本北陆大学 知乎 编辑:程序博客网 时间:2024/06/18 07:50

RAND_MAX是C中stdlib.h中宏定义的一个字符常量:
一般情况下会定义为
#define RAND_MAX Ox7FFF
其值最小为0,最大为32767
  但是在GNU LIBRARY 定义为2147483647

所以用double 转换然后再加1 防止溢出

((double) rand() / ((double) RAND_MAX + 1)

不能用加完再类型转换 已经丢失了精度

0 0
原创粉丝点击