C#生成两个小数之间的随机小数

时间:2012-01-26 16:21:12

标签: c# random decimal

编辑我会重新解释,每当我说十进制时,我的意思是system.decimal而不是数学概念

decimal min = 5.62;
decimal max = 14.39;

如何在上述两位小数的范围之间随机获得system.decimal

Double!= system.decimal

仅供参考我不知道如何让我的问题更加清晰,因为超过一半阅读此内容的人只阅读了2个单词然后将其标记为副本。

4 个答案:

答案 0 :(得分:4)

表达式y = mx + C。用NextDouble()生成0 <= X&lt; 1 FP随机,将其乘以(Dmax-Dmin)到正确的范围,然后加Dmin以移动基数。

答案 1 :(得分:3)

将小数位缩放为整数或大整数(乘以适当的幂10)在它们之间生成一个int,然后除以10的幂。

或者生成一个int,然后在小数点之间进行缩放(线性)。

答案 2 :(得分:1)

public static double randomDouble(Random rand, double start, double end)
{    
    return (rand.NextDouble() * Math.Abs(end-start)) + start;
}

答案 3 :(得分:1)

这是StackOverflow上的资源;)

Generating a Random Decimal in C#

或者您可以尝试:

Random random = new Random();
Math.Round((random.NextDouble() / 100),3));

希望这有帮助!