使用rand()生成一定范围内的随机小数

#include 
#include 
#include 
using namespace std;

float GetRand(  float fMin, float fMax  )
{
	assert( fMax > fMin );
	float fRand=0.f, f1=0.f;

	int n; //存(fMax-fMin)的整数部分
	float f; //存(fMax-fMin)的小数部分

	n = static_cast(fMax-fMin);
	f = (fMax-fMin) - n;

	if ( n>0 )
		fRand = static_cast( rand() % n );
	else
		fRand = 0.f;

	do 
	{
		f1 = static_cast( rand() ) / RAND_MAX;
		f1 *= ( rand()%2==0 ? 1 : -1 );
	} while ( fRand+f1<0 || fRand+f1 > (fMax-fMin) );

	fRand += (fMin+f1);

	return fRand;
}

int main(void)
{
	srand( (unsigned int)time(0) );

	for ( int i=0; i<100; i++ )
	{
		cout<

你可能感兴趣的:(使用rand()生成一定范围内的随机小数)