Подтвердить что ты не робот

С# Вызов неоднозначен между следующими методами или свойствами: '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)

Как я могу это исправить?

Спасибо

4b9b3361

Ответ 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)