我感觉这是一个错误,是吗?
decimal s = 30 / 9;
double w = 20 / 9;
Console.WriteLine(s);
Console.WriteLine(w);
Run Code Online (Sandbox Code Playgroud)
结果是
这是正常的吗,是的。这是一个错误吗,不。
您正在对30 / 9is进行整数数学运算3,然后分配给 a decimal,然后进行转换。与第二行相同。
试试这个:
decimal s = 30m / 9m;
double w = 20.0 / 9.0;
Console.WriteLine(s);
Console.WriteLine(w);
Run Code Online (Sandbox Code Playgroud)
这给出:
3.3333333333333333333333333333
2.2222222222222223
Run Code Online (Sandbox Code Playgroud)
您需要在表达式中使用正确的类型声明常量。后缀 anm为decimal. 并提供小数位或带有dfor 的后缀double。