我知道这是一个非常基本的问题,但请解释原因。
var number = 7 / 2; // number is 3
decimal number = 7 /2; // still number is 3
为什么数字不是3.5?为什么它总是被转换为int?因为数字都是int?当您将其中一个数字转换为十进制时,这是有效的。
答案 0 :(得分:7)
literals 7
和2
都被编译器解释为int
。因此,除法是整数除法,结果为int
值3
。
使用var
关键字,编译器会从表达式中推断出正确的类型,从而导致第一行中的number
属于int
类型。
在第二行中,您明确声明number
为十进制,因此int
返回的7 / 2
已投放到decimal
。
如果您希望结果为decimal
,则应使用m
的正确文字结尾:
var number = 7/2m;
答案 1 :(得分:3)
因为7/3
是(int)7/(int)3
。
如果您想获得decimal,请使用7m/2m