2010-12-30 23 views
38

Sto lavorando al concetto di barra in ASP.NET MVC 2. Qui ho un DropDownList che ha 10 valori. voglio calcolare la percentuale per la barra di avanzamento, ad es. 10 valori da DropDownList e sto avendo una query che restituisce il valore 2. quindi, su 10 valori sto ottenendo 2. "20% completato" deve essere visualizzato .. Come eseguire questo calcoloCalcolo percentuale

risposta

46

(current/maximum) * 100. Nel tuo caso, (2/10) * 100.

+0

Grazie lot..how per arrotondare quello .. per ex (2/11) * 100 significa che cosa dovrei fare ... – RobinHood

+1

utilizzare Math.Round e quindi decidere il numero di posizioni decimali desiderato :) – WestDiscGolf

+1

Eseguire il cast di un int. (int) ((2.0/11.0) * 100.0) = 18. –

49

Utilizzando Math.Round():

int percentComplete = (int)Math.Round((double)(100 * complete)/total); 

o arrotondamento manualmente:

int percentComplete = (int)(0.5f + ((100f * complete)/total)); 
+0

Quindi, 'complete' e' total' dovrebbero essere 'int' o' double'? Grazie. – Si8

+0

In realtà non importa se lo usi esattamente come scritto qui. Provare questa affermazione è un esercizio lasciato al lettore :) – Sogger

+0

non dovresti mai usare un numero in virgola mobile (cioè doppio) per soldi – stuartdotnet

23

Con C# String formattazione si può evitare la moltiplicazione per 100 come farà il codice più corto e più pulito soprattutto a causa della minore staffe e anche il codice di arrotondamento può essere evitato.

(current/maximum).ToString("0.00%"); 

// Output - 16,67%

2

in matematica, per ottenere la percentuale da due numeri:

percentage=(yourNumber/totalNumber)*100; 

e per calcolare da una percentuale:

number=(percentage/100)*totalNumber; 
0

È possibile mantenere la percentuale come decimale (value \ total) e quindi quando si vuole rendere a un essere umano che si può fare uso di Habeeb'sanswer o utilizzando string interpolation si potrebbe avere qualcosa di ancora più pulito:

var displayPercentage = $"{(decimal)value/total:P}"; 

o

//Calculate percentage earlier in code 
decimal percentage = (decimal)value/total; 
... 
//Now render percentage 
var displayPercentage = $"{percentage:P}";