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

Cri*_*rna 3 c# xml double converter

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

var pruebaPago = Math.Ceiling(row[i].Pagado);
Run Code Online (Sandbox Code Playgroud)

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

cannot convert from 'double?' to 'decimal'
Run Code Online (Sandbox Code Playgroud)

XML文件具有以下定义 Pagado

<s:element name="Pagado" type="s:double" nillable="true"/>
Run Code Online (Sandbox Code Playgroud)

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

Yuv*_*kov 7

你会想要使用Nullable<double>.Value.您还需要检查该值是否不是null第一个:

if (row[i].Pagado.HasValue)
{
    var pruebaPago = Math.Ceiling(row[i].Pagado.Value);
}
Run Code Online (Sandbox Code Playgroud)

当前的重载决策发现decimal过载是最佳匹配Math.Ceiling,因为你传递a double?而不是a double.