C# вызов неоднозначен между следующими методами или свойствами: 'System.Математика.Система Round (double, int)' и'.Математика.Круглый (десятичный, int)

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

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

мой код

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

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

спасибо

3 ответов


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

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

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

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