С# Вызов неоднозначен между следующими методами или свойствами: 'System.Math.Round(double, int)' и 'System.Math.Round(decimal, int)
Мой код не будет компилироваться из-за ошибки ниже:
Вызов неоднозначен между следующими методами или свойствами: "System.Math.Round(double, int)" и "System.Math.Round(decimal, int)
Мой код
Math.Round(new FileInfo(strFilePath).Length / 1024, 1)
Как я могу это исправить?
Спасибо
Ответы
Ответ 1
Проблема заключается в том, что вы делаете целочисленное деление (результаты также находятся в int
), а int
может быть неявно преобразован как в double
, так и в decimal
. Поэтому вам нужно убедиться, что выражение приводит к одному из них; double
, вероятно, то, что вы хотите.
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)