C # l'appel est ambigu entre les méthodes ou propriétés suivantes: 'System.Mathématique.Rond( double, int) ' et ' système.Mathématique.Rond (décimal, int)

Mon code ne sera pas compilé en raison de l'erreur ci-dessous:

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

Mon code est

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

Comment puis-je résoudre ce problème?

Merci

28
demandé sur BornToCode 2009-04-21 13:36:42

3 réponses

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

Math.Round(new FileInfo(strFilePath).Length / 1024.0, 1)
19
répondu Lucero 2016-11-20 14:28:41
Math.Round(new FileInfo(strFilePath).Length / 1024d, 1)
40
répondu Arcturus 2009-04-21 09:38:37
Math.Round((double) (new FileInfo(strFilePath).Length / 1024), 1)
2
répondu edosoft 2014-09-23 21:17:38