gpt4 book ai didi

c# - 我该如何处理这个 double.NaN

转载 作者:行者123 更新时间:2023-11-30 20:40:01 32 4
gpt4 key购买 nike

我有一个 Convert.ToDecimal(),它偶尔会抛出消息异常

Value was either too large or too small for a Decimal

,因为对 DataContainer.GetValue(ColKeyId, index) 的调用返回 double.NaN

if (Convert.ToDecimal(DataContainer.GetValue(ColKeyId, index)) != Convert.ToDecimal(newValueToSet))
{
DataContainer.SetValue(ColKeyId, index, newValueToSet);
}

我无法更改 GetValue() 的 API 实现调用。处理 NaN double 的十进制转换的最佳方法是什么?

最佳答案

好吧,听起来你只需要检测它是否是一个 NaN 值:

double value = DataContainer.GetValue(ColKeyId, index);
if (double.IsNaN(value) || double.IsInfinity(value) ||
(decimal) value != (decimal) newValueToSet)
{
DataContainer.SetValue(ColKeyId, index, newValueToSet);
}

老实说,您根本不清楚为什么要将 double 转换为 decimal,但这段代码至少展示了如何检测 NaN/无限值.请注意,我已将对 Convert.ToDecimal 的调用更改为简单的强制转换以使代码更简单 - 当然,如果您愿意,也可以使用 Convert.ToDecimal

关于c# - 我该如何处理这个 double.NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33776597/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com