【问题标题】:Generating a random double in range of [-1,1] in C# [duplicate]在 C# 中生成 [-1,1] 范围内的随机双精度数 [重复]
【发布时间】:2021-11-19 22:48:03
【问题描述】:

我正在尝试生成一个介于 -1 和 1 之间的随机双精度值,并且还包括它们两者。由于存在负面影响,我在互联网上找不到任何解决方案。

【问题讨论】:

标签: c# random double


【解决方案1】:

Random.NextDouble 提供介于 0 和 1 之间的值。 所以只需乘以 2,然后减去 1...

var betweenMinusOneAndOne = (new Random().NextDouble() * 2) -1;

【讨论】:

  • Random.NextDouble 产生[0, 1) 范围内的值 - 表示大于或等于零且小于一。 OP 特别希望包含1Random.NextDouble 做不到。
  • 话虽如此,但对于在[0, 1] 上产生double 精度值的随机数生成器,获得1 的机会确实非常小,因此出于实际目的Random.NextDouble做得很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
  • 1970-01-01
相关资源
最近更新 更多