C# 是否可以在DataColumn表达式中超过int32(转换为双精度)?
我试着用System.Data DataTable+列制作一个计算器,它可以覆盖像power by和圆括号这样的大部分内容,并将等式作为字符串加载到其中。示例:10/2+32-5*3。。。这使得编写代码更容易,但我开始认为我应该用另一种方式来做 当我和我的朋友想要测试速度时,我们超过了Int32限制,所以现在我想知道是否有可能将其更改为“双”限制? 在“table.Columns.Add(Columns)”行之前,列需要能够超过Int32,这就是它崩溃的地方C# 是否可以在DataColumn表达式中超过int32(转换为双精度)?,c#,C#,我试着用System.Data DataTable+列制作一个计算器,它可以覆盖像power by和圆括号这样的大部分内容,并将等式作为字符串加载到其中。示例:10/2+32-5*3。。。这使得编写代码更容易,但我开始认为我应该用另一种方式来做 当我和我的朋友想要测试速度时,我们超过了Int32限制,所以现在我想知道是否有可能将其更改为“双”限制? 在“table.Columns.Add(Columns)”行之前,列需要能够超过Int32,这就是它崩溃的地方 static double
static double Calculate(string formula)
{
DataTable table = new DataTable();
DataColumn column = new DataColumn();
column.DataType = typeof(double);
column.ColumnName = "Calculate";
column.Expression = formula;
table.Columns.Add(column); // Crash here and Exeption say Int32 limit exeeded
table.Rows.Add(0);
return Convert.ToDouble((table.Rows[0]["Calculate"]));
}
是的,可以像上一行一样将Int32转换为Double:
Convert.ToDouble((table.Rows[0]["Calculate"]));
但要注意将此值返回到的变量类型。也就是说,变量的类型也必须是“Double”类型,这样您就不会得到任何错误
您可以通过以下链接了解更多信息:
对不起,我说得不够清楚。增加了更多的解释