web-dev-qa-db-ja.com

C#次のメソッドまたはプロパティ間で呼び出しがあいまいです: '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)

どうすれば修正できますか?

ありがとう

36
James B

問題は、整数除算を行い(intにもなります)、intdoubledecimalの両方に暗黙的に変換できることです。したがって、式の結果がこれらのいずれかになるようにする必要があります。 doubleはおそらくあなたが望むものです。

Math.Round(new FileInfo(strFilePath).Length / 1024.0, 1)
28
Lucero
Math.Round(new FileInfo(strFilePath).Length / 1024d, 1)
45
Arcturus
Math.Round((double) (new FileInfo(strFilePath).Length / 1024), 1)
6
edosoft