问题
My code won't compile due to the error below:
The call is ambiguous between the following methods or properties: 'System.Math.Round(double, int)' and 'System.Math.Round(decimal, int)
My code is
Math.Round(new FileInfo(strFilePath).Length / 1024, 1)
How can I fix this?
Thanks
回答1:
The problem is that you make an integer division (results also in an int
) and a int
can be implicitly converted to both double
and decimal
. Therefore, you need to make sure the expression results in one of those; double
is probably what you want.
Math.Round(new FileInfo(strFilePath).Length / 1024.0, 1)
回答2:
Math.Round(new FileInfo(strFilePath).Length / 1024d, 1)
回答3:
Math.Round((double) (new FileInfo(strFilePath).Length / 1024), 1)
来源:https://stackoverflow.com/questions/771825/c-sharp-the-call-is-ambiguous-between-the-following-methods-or-properties-syst