My code is to generate random cordinates of lat and long within a bound:
Random lastLat = new Random();
Random lastLon = new Random();
for (int i = 0; i < 50; i++)
{
int lat = lastLat.Next(516400146, 630304598); //18.51640014679267 - 18.630304598192915
int lon = lastLon.Next(224464416, 341194152); //-72.34119415283203 - -72.2244644165039
SamplePostData d0 = new SamplePostData();
d0.Location = new Location(Convert.ToDouble("18." + lat), Convert.ToDouble("-72." + lon));
AddPushpin(d0);
}
My output looks like this:
http://img263.imageshack.us/img263/7504/capturerkv.png http://img263.imageshack.us/img263/7504/capturerkv.png
Is there something wrong with how my numbers are generated?
Jørn’s answer gave the problem, but not the solution: just use a single instance of
Random:(I’ve changed the way of using the result, too – there’s no need to convert to and from a string to achieve what you want. An alternative would be to call
Random.NextDoubleinstead and multiply it by the size of the desired range, then add a base value.)If you’re calling routine multiple times, you should probably use a single instance of
Randomacross those multiple calls. Beware though:Randomin .NET is not thread-safe. Ideally you should have a single instance per thread. See my article on randomness for more details of how to handleRandom.