46

以下のエラーが原因で、コードがコンパイルされません。

次のメソッドまたはプロパティ間の呼び出しがあいまいです: 'System.Math.Round(double, int)' と 'System.Math.Round(decimal, int)

私のコードは

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

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

ありがとう

4

3 に答える 3

52
Math.Round(new FileInfo(strFilePath).Length / 1024d, 1)
于 2009-04-21T09:38:37.510 に答える
39

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

Math.Round(new FileInfo(strFilePath).Length / 1024.0, 1)
于 2009-04-21T09:38:08.307 に答える
9
Math.Round((double) (new FileInfo(strFilePath).Length / 1024), 1)
于 2009-04-21T09:39:10.083 に答える