Мне кажется странным бросать нуль в тип, поэтому я хотел бы дважды проверить, что это правильный способ сделать это:
decimal? d = data.isSpecified ? data.Value : (decimal?)null;
ПРИМЕЧАНИЕ. Я отмечаю ответ, который предлагает метод, который мне лично нравится лучше всего:
decimal? d = data.isSpecified ? data.Value : default(decimal?)