无法转换为' double?'到十进制'

时间:2015-06-29 18:34:43

标签: c# xml double converter

我正在阅读一个XML文件,我正在解析这些信息。我试图将double转换为像这样的

var pruebaPago = Math.Ceiling(row[i].Pagado);

但是当我运行我的代码时,我收到以下错误:

cannot convert from 'double?' to 'decimal'

XML文件具有Pagado

的以下定义
<s:element name="Pagado" type="s:double" nillable="true"/>

如何转换nillable值并将其四舍五入到最接近的整数?

1 个答案:

答案 0 :(得分:7)

您需要使用Nullable<double>.Value。您还需要先检查值是否为null

if (row[i].Pagado.HasValue)
{
    var pruebaPago = Math.Ceiling(row[i].Pagado.Value);
}

当前的重载决策会导致decimal重载与Math.Ceiling的最佳匹配,因为您传递了double?而不是double