int n = 5;
int quorum = Math.Floor(n / 2) + 1;
我希望 quorum 的值为 3。但这是我在 VisualStudio 中遇到的错误:
The call is ambiguous between the following methods or properties: 'System.Math.Floor(double)' and 'System.Math.Floor(decimal)'
如何纠正?我哪里出错了?
最佳答案
您无需使用 Math.Floor
。因为您的所有项都是整数,所以 .NET 将执行整数除法,无论如何都会自动截断输出的其余部分。
至于为什么报错,上面说了整数除法的结果还是整数。因为您不能对整数进行取整(没有小数部分可以向下舍入),所以没有采用 int
的 Floor
重载。该调用必须首先将结果转换为 decimal
或 double
,编译器不知道您想要哪一个(事实上,两者都不是)。
关于c# - C# .NET 中的方法或属性之间存在歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10133774/