c# - 在 C# 中调用时执行 Double & Float 方法参数

标签 c# parameters floating-point double

这是一小段代码,调用它时会输出“double”。为什么?这背后的原因是什么。为什么它不打印“ float ”?

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

最佳答案

要像这样指定 float 调用:

r.Method1(1.1f);

否则它会默认为双倍,就像您观察到的那样。

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

By default, a real numeric literal on the right-hand side of the assignment operator is treated as double.

关于c# - 在 C# 中调用时执行 Double & Float 方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1557234/

相关文章:

c# - CakeBuild:DotNetCoreBuild 与 DotNetBuild?

c# - 更新自定义工作流程事件中创建的记录 -CRM -C#

c++ - 可选功能参数 : Use default arguments (NULL) or overload the function?

actionscript-3 - 如何修复浮点不精确的输出?

c# - 对于使用 couchbase 的解决方案,这是 .NET 自定义角色提供程序的合理方法吗?

C# Lambda WhereIf 或语句

javascript - 是否可以使用 rest 运算符提供默认参数

PHP MySQL insert in float(3,1) 总是得到十进制的 "0"

javascript - 翻译后的 JavaScript 中的舍入错误

c# - Xamarin 和 .NET Standard 2 库问题