c# - 为什么 var 评估为 int 而不是 double?

标签 c# .net

在下面的代码中,为什么编译器将结果变量计算为 3(整数)而不是 3.5(浮点或 double )?

void Main()
{
    var result = 7/2;
    Console.WriteLine(result);
}

谢谢

最佳答案

因为,如果将一个 int 除以另一个,结果是一个 int。这是指定的 here .

When you divide two integers, the result is always an integer. For example, the result of 7 / 3 is 2.

然后 var 只使用表达式类型来创建一个 int 因为这就是您告诉它您想要的(尽管是隐含的)。如果你想要一个double,你需要强制表达式的类型为double:

var result = 7.0 / 2;

或者,如果您使用 int 变量 而您不能只添加 .0:

int seven = 7;
int two = 2;
var result = (double)seven / two;

关于c# - 为什么 var 评估为 int 而不是 double?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27438349/

相关文章:

c# - ASP.NET 将 HTML 转换为 PDF

c# - 无法使用 c++/cli 包装器从 c# dll 加载函数

c# - Entity Framework 中的单向一对一关系

c# - 创建一个 ftp 服务器

.net - 如何在托管 C++/CLI 项目中修复 CA2123(覆盖链接需求应与基本相同)

.net - 如何在 .NET 中生成版本 1 Guid?

c# - 使用 Azure B2C 进行 .NET 核心 JWT 验证

c# - 如何为用户的每个新值将列表项格式化为不同的表行

c# - 此代码的哪一行可能引发 "Index was outside the bounds of the array"异常?

c# - DLL 项目 - 知道哪个环境调用了它吗? (网络/窗口/cmd)