How do I generate random number between 0 and 1 in C#?

前端 未结 6 861
迷失自我
迷失自我 2020-12-10 11:55

I want to get the random number between 1 and 0. However, I\'m getting 0 every single time. Can someone explain me the reason why I and getting 0 all the time? This is the

6条回答
  •  死守一世寂寞
    2020-12-10 12:21

    According to the documentation, Next returns an integer random number between the (inclusive) minimum and the (exclusive) maximum:

    Return Value

    A 32-bit signed integer greater than or equal to minValue and less than maxValue; that is, the range of return values includes minValue but not maxValue. If minValue equals maxValue, minValue is returned.

    The only integer number which fulfills

    0 <= x < 1
    

    is 0, hence you always get the value 0. In other words, 0 is the only integer that is within the half-closed interval [0, 1).

    So, if you are actually interested in the integer values 0 or 1, then use 2 as upper bound:

    var n = random.Next(0, 2);
    

    If instead you want to get a decimal between 0 and 1, try:

    var n = random.NextDouble();
    

    Hope this helps :-)

提交回复
热议问题