我需要将n转换为整数。我已尝试h = rnd.Next(0, Math.Floor(n))
,而n则存储为double。我现在在该位置的代码如下所示。
Random rnd = new Random();
k = rnd.Next(50, 250);
int n = Math.Floor(Math.Sqrt(300-k));
h = rnd.Next(0, n);
答案 0 :(得分:0)
Math.Floor
返回一个double,因为此方法可以返回特殊值,例如NaN和无穷大。您需要转换为int
:(int)Math.Floor(3.14)
。
答案 1 :(得分:0)
由于在这种情况下,Math.Sqrt
只能返回正double
,您可以跳过对Math.Floor
的调用,然后将结果Math.Sqrt
转换为int
1}},它将截断结果:
int n = (int)Math.Sqrt(300-k);
请注意,将double
截断为int
只会丢弃double
的小数位数,并调用Math.Floor
将double
向负无穷大方向舍入。在这种情况下,由于您的结果总是正数,它们最终会相同,但如果您使用负数,则操作会产生不同的结果。