这是一小段代码,当被称为输出'double'时。为什么?这背后的原因是什么?为什么不打印'浮动'?
class source
{
static void Main()
{
Receiver r = new Receiver();
r.Method1(1.1);
}
}
class Receiver
{
public virtual void Method1(double f) { Debug.Print("double"); }
public virtual void Method1(float f) { Debug.Print("float"); }
}
TIA
答案 0 :(得分:13)
要像这样指定浮动调用:
r.Method1(1.1f);
否则它会默认加倍,就像你观察到的那样。
这是双MSDN documentation的一个部分,解释了原因:
默认情况下,真正的数字文字 作业的右侧 运算符被视为double。
答案 1 :(得分:5)
double是非整数的默认类型。所以1.1是双精度,1.1m是小数,1.1F是浮点数。