如何将两个 32 位 int 数字相除作为 ( int/int ) 返回给我 0
,但是如果我使用 Decimal.Divide()
我会得到正确的答案?我绝不是一个 c# 人。
最佳答案
int
是整数类型;将两个整数相除执行 整数 除法,即小数部分被截断,因为它不能存储在结果类型中(也是 int
!)。相比之下,Decimal
有一个小数部分。通过调用 Decimal.Divide
,您的 int
参数会隐式转换为 Decimal
。
您可以通过将至少一个参数显式转换为浮点类型来强制对 int
参数进行非整数除法,例如:
int a = 42;
int b = 23;
double result = (double)a / b;
关于c# - 为什么 Decimal.Divide(int, int) 有效,但 (int/int) 无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1043164/