无法从 'double?' 转换为 'decimal'

cannot convert from 'double?' to 'decimal'

我正在读取一个 XML 文件并且正在解析信息。我正在尝试像这样将 double 转换为 int

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

但是当我 运行 我的代码出现以下错误时:

cannot convert from 'double?' to 'decimal'

XML 文件对 Pagado

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

如何转换可空值并将其四舍五入为最接近的整数?

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

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

当前的重载解决方案发现 decimal 重载最适合 Math.Ceiling,因为您传递的是 double? 而不是 double