除以2的整数并在C#中获得双精度

时间:2019-03-22 19:41:50

标签: c# casting int double divide

我是初学者。以下两种情况均提供相同的输出,但是在编译时它们是否完全相同?如果不是,在那种情况下最好使用其中一种?

        int num1 = 1001;
        int num2 = 505;
        double num11 = num1;


        double result1 = num11 / num2;
        double result2 = (double)num1 / num2;   //  or (double)num1 / (double)num2;

        Console.WriteLine("result1 = " + result1);
        Console.WriteLine("result2 = " + result2);


        /* Output:
        result1 = 1.98217821782178
        result2 = 1.98217821782178
        */

2 个答案:

答案 0 :(得分:2)

在第一个版本中,调用隐式强制转换将num1转换为double。在第二种情况下,您使用显式强制转换来执行相同的操作。在这种情况下,两种方法都相同,但是隐式和显式强制转换不必相同。

我认为显式强制转换是更可取的,因为它更容易阅读正在发生的事情,并且不需要初始化新变量。

答案 1 :(得分:0)

如果C#中的任何参数为double,则使用double分隔符,从而得出double。 有关更多信息,请参见: https://www.dotnetperls.com/numeric-casts