C#以下方法或属性之间的调用不明确:'System.Math.Round(double,int)'和'System.Math.Round(decimal,int)

时间:2009-04-21 09:36:43

标签: c# ambiguity

由于以下错误,我的代码无法编译:

以下方法或属性之间的调用不明确:'System.Math.Round(double,int)'和'System.Math.Round(decimal,int)

我的代码是

Math.Round(new FileInfo(strFilePath).Length / 1024, 1)

我该如何解决这个问题?

由于

3 个答案:

答案 0 :(得分:44)

Math.Round(new FileInfo(strFilePath).Length / 1024d, 1)

答案 1 :(得分:26)

问题在于您进行整数除法(结果也在int中),而int可以隐式转换为doubledecimal。因此,您需要确保表达式导致其中一个; double可能就是你想要的。

Math.Round(new FileInfo(strFilePath).Length / 1024.0, 1)

答案 2 :(得分:5)

Math.Round((double) (new FileInfo(strFilePath).Length / 1024), 1)