Obtenir une valeur de 0 lors de la division 2 longs en c#

Je suis en train de diviser les valeurs de DriveInfo.AvailableFreeSpace & DriveInfo.TotalSize pour essayer et obtenir un pourcentage d'utiliser une barre de progression.

J'ai besoin de la valeur de fin d'être un int comme la progressbar.valeur implique un int et les méthodes ci-dessus, de retour d'un long.

J'ai ce que les valeurs:

164660715520---AvailableFreeSpace

256058060800---TotalSize

Quand j'essaye de mettre de la progressbar.valeur à l'aide de cette méthode, je reçois aussi une erreur:

progressBar1.Valeur=(int)(dInfo.AvailableFreeSpace/dInfo.TotalSize)*100;

Lorsque j'utilise ce code pour essayer d'obtenir une valeur qu'elle retourne 0.

label10.Text =  (((int)dInfo.AvailableFreeSpace/dInfo.TotalSize)*100).ToString();

J'ai même essayé et ça ne fonctionne pas:

label10.Text = ((dInfo.AvailableFreeSpace/dInfo.TotalSize)*100).ToString();

Je sais que j'ai encore à faire la mise en forme de l'obtenir à regarder bonne, mais chaque fois que j'exécute le code, elle retourne 0.

Pourrait-il avoir quelque chose à voir avec la conversion de long int?

  • La valeur de 164660715520/256058060800 est de 0,64. C'est pourquoi vous obtenez 0, j'imagine.
InformationsquelleAutor Zeratas | 2012-09-23