在 C# 中除以 2 个整数并得到一个双精度数
Divide 2 ints and get a double in C#
我是初学者。以下两种情况输出相同,但编译时是否完全相同?如果不是,在哪种情况下使用其中一种更可取?
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
*/
如果 C# 中的任何参数是双精度,则使用双除以得到双精度。
有关详细信息,请参阅:
https://www.dotnetperls.com/numeric-casts
在第一个版本中,调用隐式转换将 num1
转换为 double
。在第二种情况下,您使用显式强制转换来执行相同的操作。在这种情况下,两种方法都是相同的,但隐式和显式转换不需要相同。
我认为显式转换更可取,因为它更清楚地读取正在发生的事情并且不需要初始化新变量。
我是初学者。以下两种情况输出相同,但编译时是否完全相同?如果不是,在哪种情况下使用其中一种更可取?
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
*/
如果 C# 中的任何参数是双精度,则使用双除以得到双精度。 有关详细信息,请参阅: https://www.dotnetperls.com/numeric-casts
在第一个版本中,调用隐式转换将 num1
转换为 double
。在第二种情况下,您使用显式强制转换来执行相同的操作。在这种情况下,两种方法都是相同的,但隐式和显式转换不需要相同。
我认为显式转换更可取,因为它更清楚地读取正在发生的事情并且不需要初始化新变量。