如何将double变量转换为整数变量?

时间:2014-11-06 00:19:21

标签: c# int double

我需要将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);

2 个答案:

答案 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.Floordouble向负无穷大方向舍入。在这种情况下,由于您的结果总是正数,它们最终会相同,但如果您使用负数,则操作会产生不同的结果。