【发布时间】:2021-05-04 05:00:16
【问题描述】:
W3学校提供以下代码:
double myDouble = 9.78;
int myInt = (int) myDouble; // Manual casting: double to int
Console.WriteLine(myDouble); // Outputs 9.78
Console.WriteLine(myInt); // Outputs 9
在第 2 行,如果我已经声明变量类型是 'int',为什么我已经将 myDouble 声明为整数,但我还必须将其转换为整数?
我在我正在使用的书中看到了同样的内容,其中一行是:
float num1 = (float) 20.9;
decimal num2 = (decimal) 20.9;
同样,在我们已经告诉它使用特定数据类型之后,我们将数据类型放在括号中。我确信后端有原因,我只是不知道它是什么。
【问题讨论】:
-
TLDR 是:告诉编译器您在使用可能导致数据丢失的转换时知道自己在做什么。
-
没有这个,你可能会永远追逐一个奇怪的缺陷,并且不知道为什么
myInt的值不是你所期望的。如果您知道有转换,您可以查看the documentation 并准确了解它是如何转换的。