c# - 为什么 Decimal.Divide(int, int) 有效,但 (int/int) 无效?

标签 c# math int divide

如何将两个 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/

相关文章:

c# - 通过选定的标签过滤文档列表

c++ - 如何使输入成为我的代码的一部分?

c# - 用c#求解方程的程序

java - int[] 到 int 不兼容类型错误

java - 为什么整数除以零 1/0 会给出错误但浮点 1/0.0 返回 "Inf"?

c - 用 scanf 读取 int 直到换行

c# - list <T> : Clear; AddRange; Add; Delete; ect. 。导致 System.IndexOutOfRangeException

c# - PRISM + MEF -- 如何指定使用哪个导出?

c# - 使用 Kestrel 时可配置端口号吗?

algorithm - 以下代码的时间复杂度是多少?