在C#中添加可为空的小数

时间:2012-10-22 12:06:45

标签: c# nullable

让我重新表述。我在ForEach循环里面应该添加计算小数?值到小数?当你指出时,originalAmount当然是第一次为null。 所以我只需要先检查null,否则再添加。

decimal? convertedAmount = Calculate(inputValue); //always returns a value

originalAmount = originalAmount==null ? convertedAmount : originalAmount + convertedAmount;

在循环之外,之前定义了originalAmount。

对于这种混淆感到抱歉,如有必要,可以关闭/删除该问题。

2 个答案:

答案 0 :(得分:6)

(来自评论)

  

我只希望originalAmount在convertedAmount有的情况下有一个值,否则它应该为null。

所以:

decimal? convertedAmount = ...

decimal? originalAmount = convertedAmount;

执行该要求中的所有操作。

可能更详细,但这没有任何意义

// unnecessary: don't do this:
decimal? originalAmount =
    convertedAmount.HasValue ? convertedAmount.Value : (decimal?)null;

答案 1 :(得分:1)

当一个或两个值为null时,您需要指定添加的行为方式。建议尝试这样的事情:

decimal? convertedAmount = ...
decimal? originalAmount = ...
if (convertedAmount.HasValue)
{
    originalAmount = originalAmount.GetValueOrDefault() + convertedAmount.GetValue;
}