双&在C#中调用时,Float方法参数执行

时间:2009-10-12 22:14:28

标签: c# parameters floating-point double

这是一小段代码,当被称为输出'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

2 个答案:

答案 0 :(得分:13)

要像这样指定浮动调用:

r.Method1(1.1f);

否则它会默认加倍,就像你观察到的那样。

这是双MSDN documentation的一个部分,解释了原因:

  

默认情况下,真正的数字文字   作业的右侧   运算符被视为double。

答案 1 :(得分:5)

double是非整数的默认类型。所以1.1是双精度,1.1m是小数,1.1F是浮点数。