关于C#DataTable.Compute()的语法

时间:2016-03-29 05:52:16

标签: c# datatable

在尝试找到一个简单的C#数学计算器时,我在下面找到了一个。 C# Math calculator

它非常适合我,因为它不需要任何COM或其他第三方参考。 但是,我发现了一个令人困惑的事情:

dependencies {
    compile(name:'abc', ext:'aar')
}

所以我想问一下,第二和第三行有什么问题?计算方法是否处理" /"是另一种方式?

我读过这个:https://msdn.microsoft.com/en-us/library/system.data.datatable.compute.aspx,但没有任何帮助。

2 个答案:

答案 0 :(得分:1)

这个问题的部分内容已经得到解答: Why is infinity printed as "8" in the Windows 10 console?

我们有一个应用程序,在Windows 8.1上将打印“Infinity”表达诸如“1/0”之类的表达式。在Windows 10上,它返回“8”。

它不是数值8,而是错误显示的Unicode字符(应该是死8)。

答案 1 :(得分:0)

我在LinqPad中尝试了您的代码,结果如下:

new DataTable().Compute("2 / 0", null); // Gives infinity (object{double})
new DataTable().Compute("100 / 0", null); // Gives infinity (object{double})
new DataTable().Compute("100 / 0", null); // Gives divideByZeroException

来自我的测试代码:

        var result = (double) new DataTable().Compute("20 / 0", null);

        if(double.IsInfinity(result))
        {
            Console.WriteLine("Oh noes!"); // Debugger lands here
        }
        Console.WriteLine(result);
    }

无穷大的概念存在于双重中。我不知道为什么你会在最后一个上得到例外。希望有人可以对此发表评论。