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

to nie pozwoli mi okrągłąOkrągły pustych dziesiętny do 5 miejsc po przecinku

exposure.Volatility 

do przecinku b/c to powiedzieć na konwersję z przecinku? do dziesiętnego nie może mieć miejsca.

Jak zaokrąglić tę liczbę do 5 miejsc dziesiętnych? Jest to dziesiętna wartość zerowa.

Odpowiedz

13

Zakładając zerowy wartość jest równa zeru w tej sytuacji coś takiego:

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

Jeśli "t" jest również Nullable następnie wykonaj:

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

+1 za sprawdzenie najpierw wartości ;-) –

+0

Po kilku ukąszeniach, pomyślałem, że to chyba dobry pomysł. :) – Sapph

+0

to jest sprawdzane wcześniej, ale dobrze wyglądać – slandau

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

Spowoduje to wygenerowanie 'InvalidOperationException', jeśli zmienna nie ma wartości. –

+0

Tak, będzie. Zakładam, że jeśli używasz typów zerowujących, sprawdzasz właściwość .HasValue gdzieś przed wywołaniem właściwości .Value. –

1

Użyj Nullable „s Value właściwość:

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

Spowoduje to wygenerowanie 'InvalidOperationException', jeśli zmienna nie ma wartości. –

Powiązane problemy