if you want decimal points you can use floating point precision:
1 2 3
float v = (rand() % 3000) / 100.f + 1985.f;
the above code will only have precision up to the second decimal point though. I believe C++11 adds more random number generators including one for floats and doubles if you are looking for more accuracy.