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

Это не позволит мне круглыйКруглый обнуляемым десятичного до 5 знаков после запятой

exposure.Volatility 

к десятичной б/с это Сэя преобразование из десятичной? до десятичного не может иметь место.

Как округлить это число до пяти знаков после запятой? Это число с нулевым значением.

ответ

13

Предполагая нулевое значение равно нулю в этом обстоятельстве, что-то вроде:

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

Если "т" также nullable then do:

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

+1 для проверки значения сначала ;-) –

+0

После нескольких укусов, я подумал, что это, вероятно, хорошая идея. :) – Sapph

+0

это проверяется раньше, но хороший взгляд – slandau

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

Это вызовет 'InvalidOperationException', если переменная не имеет значения. –

+0

Да, будет. Я предполагаю, что если вы используете типы с нулевым значением, вы проверяете свойство .HasValue где-то, прежде чем вы вызываете свойство .Value. –

1

Используйте Nullable «s Value свойство:

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

Это вызовет 'InvalidOperationException', если переменная не имеет значения. –

Смежные вопросы