C # Вызов неоднозначен между следующими методами или свойствами: 'System.Math.Round (double, int)' и 'System.Math.Round (decimal, int) - PullRequest
35 голосов
/ 21 апреля 2009

Мой код не скомпилируется из-за ошибки ниже:

Вызов неоднозначен между следующими методами или свойствами: 'System.Math.Round (double, int)' и 'System.Math.Round (decimal, int)

Мой код

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

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

Спасибо

Ответы [ 3 ]

44 голосов
/ 21 апреля 2009
Math.Round(new FileInfo(strFilePath).Length / 1024d, 1)
26 голосов
/ 21 апреля 2009

Проблема заключается в том, что вы делаете целочисленное деление (в результате также int) и int можно неявно преобразовать в double и decimal. Поэтому вам нужно убедиться, что выражение приводит к одному из них; double это, вероятно, то, что вы хотите.

Math.Round(new FileInfo(strFilePath).Length / 1024.0, 1)
5 голосов
/ 21 апреля 2009
Math.Round((double) (new FileInfo(strFilePath).Length / 1024), 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...