>>495
return rand() / (RAND_MAX + 1.0);
でいいと思います。この値が 1 になる可能性はつぶしておいたほうがいいのでは?