web-dev-qa-db-fra.com

C # L'appel est ambigu entre les méthodes ou propriétés suivantes: 'System.Math.Round (double, int)' et 'System.Math.Round (décimal, int)

Mon code ne se compilera pas en raison de l'erreur ci-dessous:

L'appel est ambigu entre les méthodes ou propriétés suivantes: 'System.Math.Round (double, int)' et 'System.Math.Round (décimal, int)

Mon code est

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

Comment puis-je réparer cela?

Merci

38
James B

Le problème est que vous faites une division entière (résulte également en un int) et un int peut être implicitement converti en double et decimal. Par conséquent, vous devez vous assurer que l'expression aboutit à l'un de ceux-ci; double est probablement ce que vous voulez.

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