微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将double设为null类型?

如何解决如何将double设为null类型?

| 我想四舍五入吗?值,因此,如果有2,3,则应为2,但如果有null,则应为null。     

解决方法

没有直接舍入可为空的双精度数的方法。您需要检查变量是否具有值:如果是,则将其四舍五入;否则,将变量取整。否则,返回
null
。 如果使用条件
?:
运算符执行此操作,则需要转换一点:
double? result = myNullableDouble.HasValue
               ? (double?)Math.Round(myNullableDouble.Value)
               : null;
或者:
double? result = null;
if (myNullableDouble.HasValue)
{
    result = Math.Round(myNullableDouble.Value);
}
    ,正如其他人指出的那样,一次性完成此操作很容易。通常要这样做:
static Func<T?,T?> LiftToNullable<T>(Func<T,T> func) where T : struct
{
    return n=> n == null ? (T?) null : (T?) func(n.Value);
}
现在您可以说:
var NullableRound = LiftToNullable<double>(Math.Round);
double? d = NullableRound(null);
嘿,现在您可以使用任何采用并返回值类型的方法来执行此操作。     ,
return d.HasValue ? Math.Round(d.Value) : (double?)null;
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。