Ricapitolo un attimo: devi arrotondare, la funzione è Math.Round

http://msdn.microsoft.com/it-it/libr...ath.round.aspx

che vuole un decimal o un double. Stai lavorando con dei single (float), perciò io farei tutti i calcoli del caso e alla Math.Round passere il tuo numero castato a da single a double. Questo casting dovrebbe essere "safe" senza farti perdere dati:

http://msdn.microsoft.com/it-it/library/k1e94s7e.aspx

Se non erro in C# il DirectCast è (tipo) quindi,
codice:
risultato = Math.Round((double)tuoValoreSingle,2)
HTH, tK