【发布时间】:2017-01-06 18:17:12
【问题描述】:
我知道这是一个非常基本的问题,但请解释一下为什么会这样。
var number = 7 / 2; // number is 3
decimal number = 7 /2; // still number is 3
为什么不是 3.5?为什么总是强制转换为int?因为数字都是整数?这在您将其中一个数字转换为十进制时有效。
【问题讨论】:
-
你是两个整数相除,结果总是一个整数。
-
分母为 2(改为 2.0),因此编译器会截断结果的小数部分。
-
表达式 7 / 2(类型
int/int)将计算为整数值 3,因为它使用整数除法。 -
如果您希望将数字文字视为十进制,请在您要除的数字之一之后使用后缀
m(正如 Rene 和 Manfred 指出的那样)
标签: c#