我正在阅读一个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值并将其四舍五入到最接近的整数?
答案 0 :(得分:7)
您需要使用Nullable<double>.Value
。您还需要先检查值是否为null
:
if (row[i].Pagado.HasValue)
{
var pruebaPago = Math.Ceiling(row[i].Pagado.Value);
}
当前的重载决策会导致decimal
重载与Math.Ceiling
的最佳匹配,因为您传递了double?
而不是double
。