【问题标题】:Random float in C# [duplicate]C#中的随机浮点数[重复]
【发布时间】:2020-08-29 18:47:48
【问题描述】:

我需要在 C# 中为我正在编写的程序生成一个随机数。假设我需要生成一个介于 -3 和 3 之间的数字。我知道我可以生成一个整数

System.Random random = new System.Random(); 
float rndNumber = random.Next(-3, 4);

但是,这只给出整数(例如 -2、1、2、0)。这不会产生任何小数。虽然你可以像这样生成小数

var rand = new Random();
var rndNumber = new decimal(rand.NextDouble());

这给出了小数(例如 0.47、0.93、0.58)。但是我将如何生成不仅仅是整数的数字?例如 1.04、1.98 或 -0.73 但不能低于或高于 -3 和 3?

【问题讨论】:

  • fyi decimal 不是浮点数。

标签: c# random numbers


【解决方案1】:
 var rand = new Random(); 
    var rndNumber = new decimal(rand.NextDouble());
rndNumber = rndNumber * 6 - 3;

NextDouble() 返回一个介于 0 和 1 之间的双精度数,将其乘以您想要的范围 6,然后将其移动偏移量 you.want -3

【讨论】:

  • 效果很好!有没有办法只生成前 3 位小数?
  • 您可以使用 Math.Round 传入值和您想要的小数位数 .... Math.Round(rndNumber, 3)
猜你喜欢
  • 1970-01-01
  • 2010-12-14
  • 1970-01-01
  • 1970-01-01
  • 2016-06-25
  • 2012-12-18
  • 2015-02-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多