"value must be a number less than infinity" 变量为整数时出错
"value must be a number less than infinity" error when the variable is a integer
我不确定是否应该问这个问题,但详细信息可能有助于找出答案:p
我有一个这样的table
我正在使用 compute
获取双变量在 Variavel
列中的区间
double value = 6;
double max Convert.ToDouble(DataAccess.Instance.tabela1vert0caso1W.Compute("MIN(Variavel)", "Variavel >= " + value.ToString(CultureInfo.InvariantCulture)));
double min = Convert.ToDouble(DataAccess.Instance.tabela1vert0caso1W.Compute("MAX(Variavel)", "Variavel <= " + value.ToString(CultureInfo.InvariantCulture)));
这里的问题是我在 double min
行得到了 inifity 错误,但是只有当我在 5 到 15 之间时才会发生,如果我选择任何其他值,我可以让程序运行正确。
有什么提示吗?
顺便说一下,我检查了行前的 value
的值,它仍然是 6。
我不确定实际问题是什么,但是,您始终可以使用更强大(支持整个 .NET 框架)并且更易读的 Linq-To-DataTable:
var variavels = DataAccess.Instance.tabela1vert0caso1W.AsEnumerable()
.Select(row => row.Field<int>("Variavel"));
double max = variavels.Where(d => d >= value).Max();
double min = variavels.Where(d => d <= value).Min();
计算方法可以return DBNull.Value。似乎不清楚 Max() 函数何时会 return 这个,但可能是你的 select returns 0 行?
我建议您添加一个检查 DBNull.Value 并在它出现时将最小值设置为值
我不确定是否应该问这个问题,但详细信息可能有助于找出答案:p 我有一个这样的table
我正在使用 compute
获取双变量在 Variavel
列中的区间
double value = 6;
double max Convert.ToDouble(DataAccess.Instance.tabela1vert0caso1W.Compute("MIN(Variavel)", "Variavel >= " + value.ToString(CultureInfo.InvariantCulture)));
double min = Convert.ToDouble(DataAccess.Instance.tabela1vert0caso1W.Compute("MAX(Variavel)", "Variavel <= " + value.ToString(CultureInfo.InvariantCulture)));
这里的问题是我在 double min
行得到了 inifity 错误,但是只有当我在 5 到 15 之间时才会发生,如果我选择任何其他值,我可以让程序运行正确。
有什么提示吗?
顺便说一下,我检查了行前的 value
的值,它仍然是 6。
我不确定实际问题是什么,但是,您始终可以使用更强大(支持整个 .NET 框架)并且更易读的 Linq-To-DataTable:
var variavels = DataAccess.Instance.tabela1vert0caso1W.AsEnumerable()
.Select(row => row.Field<int>("Variavel"));
double max = variavels.Where(d => d >= value).Max();
double min = variavels.Where(d => d <= value).Min();
计算方法可以return DBNull.Value。似乎不清楚 Max() 函数何时会 return 这个,但可能是你的 select returns 0 行?
我建议您添加一个检查 DBNull.Value 并在它出现时将最小值设置为值