编辑我会重新解释,每当我说十进制时,我的意思是system.decimal
而不是数学概念
decimal min = 5.62;
decimal max = 14.39;
如何在上述两位小数的范围之间随机获得system.decimal
?
Double!= system.decimal
仅供参考我不知道如何让我的问题更加清晰,因为超过一半阅读此内容的人只阅读了2个单词然后将其标记为副本。
答案 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));
希望这有帮助!