2011-01-06 32 views
6
vol = Decimal.Round(exposure.Volatility, 5); 

Questo non mi permette di turnorotonda decimale annullabile a 5 cifre decimali

exposure.Volatility 

ad un decimale b/c di conversione da decimale dire? al decimale non può aver luogo.

Come faccio a arrotondare quel numero a 5 cifre decimali? È un decimale annullabile.

risposta

13

Assumendo un valore nullo è uguale a zero in questa circostanza, qualcosa come:

vol = exposure.Volatility.HasValue ? Decimal.Round(exposure.Volatility.Value, 5) : 0; 

Se "vol" è anche nullable quindi fare:

vol = exposure.Volatility.HasValue ? Decimal.Round(exposure.Volatility.Value, 5) : null; 
+0

+1 per verificare prima un valore ;-) –

+0

Dopo averlo morso alcune volte, ho pensato che fosse probabilmente una buona idea. :) – Sapph

+0

è stato controllato prima ma guarda bene – slandau

0
vol = Decimal.Round(exposure.Volatility.Value, 5); 
+0

Questo getterà 'InvalidOperationException' se la variabile non ha un valore. –

+0

Sì, lo farà. Presumo che se utilizzi i tipi nullable stai controllando la proprietà .HasValue da qualche parte prima di chiamare la proprietà .Value. –

1

Utilizzare s' il NullableValue proprietà:

vol = Decimal.Round(exposure.Volatility.Value, 5); 
+1

Questo genererà 'InvalidOperationException' se la variabile non ha un valore. –

Problemi correlati