Sometimes users provides non decimal numbers and if they do that I need to get a non decimal random number, I created this method. Does this make sense and efficient?
public double RandomValue(double lowerBound, double upperBound){
Random rnd = new Random();
double randomNumber;
//If user provides both integers, we get integer random number
if(lowerBound == (int)lowerBound && upperBound == (int)upperBound)
{
randomNumber = rnd.Next((int)lowerBound, (int)upperBound);
}
//If user provides mix-match. lowerBound double - upperBound integer
else if (lowerBound != (int)lowerBound && upperBound == (int)upperBound)
{
//E.g. randomNumber = 30 + (0.75 * (60.2 - 30)) = 52.65
randomNumber = lowerBound + (rnd.NextDouble() * (upperBound - lowerBound));
randomNumber = Math.Round(randomNumber, 1);
}
//If user provides mix-match. lowerBound integer - upperBound double
else if (lowerBound == (int)lowerBound && upperBound != (int)upperBound)
{
//E.g. randomNumber = 35.3 + (0.75 * (70 - 35.3)) = 61.325
randomNumber = lowerBound + (rnd.NextDouble() * (upperBound - lowerBound));
randomNumber = Math.Round(randomNumber, 1);
}
//If user provides both double, we get double random number
else
{
//E.g. randomNumber = 35.3 + (0.75 * (70 - 35.3)) = 61.325
randomNumber = lowerBound + (rnd.NextDouble() * (upperBound - lowerBound));
randomNumber = Math.Round(randomNumber, 1);
}
//If user doesn't provide any range, use random integer
else
{
randomNumber = rnd.Next(50, 150);
}
return randomNumber;
}
Aucun commentaire:
Enregistrer un commentaire