在尝试找到一个简单的C#数学计算器时,我在下面找到了一个。 C# Math calculator
它非常适合我,因为它不需要任何COM或其他第三方参考。 但是,我发现了一个令人困惑的事情:
dependencies {
compile(name:'abc', ext:'aar')
}
所以我想问一下,第二和第三行有什么问题?计算方法是否处理" /"是另一种方式?
我读过这个:https://msdn.microsoft.com/en-us/library/system.data.datatable.compute.aspx,但没有任何帮助。
答案 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);
}
无穷大的概念存在于双重中。我不知道为什么你会在最后一个上得到例外。希望有人可以对此发表评论。