C# 是否可以在DataColumn表达式中超过int32(转换为双精度)?

C# 是否可以在DataColumn表达式中超过int32(转换为双精度)?,c#,C#,我试着用System.Data DataTable+列制作一个计算器,它可以覆盖像power by和圆括号这样的大部分内容,并将等式作为字符串加载到其中。示例:10/2+32-5*3。。。这使得编写代码更容易,但我开始认为我应该用另一种方式来做 当我和我的朋友想要测试速度时,我们超过了Int32限制,所以现在我想知道是否有可能将其更改为“双”限制? 在“table.Columns.Add(Columns)”行之前,列需要能够超过Int32,这就是它崩溃的地方 static double

我试着用System.Data DataTable+列制作一个计算器,它可以覆盖像power by和圆括号这样的大部分内容,并将等式作为字符串加载到其中。示例:10/2+32-5*3。。。这使得编写代码更容易,但我开始认为我应该用另一种方式来做

当我和我的朋友想要测试速度时,我们超过了Int32限制,所以现在我想知道是否有可能将其更改为“双”限制? 在“table.Columns.Add(Columns)”行之前,列需要能够超过Int32,这就是它崩溃的地方

    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”类型,这样您就不会得到任何错误

您可以通过以下链接了解更多信息:

对不起,我说得不够清楚。增加了更多的解释