我正在尝试划分多个值,并且想知道检查其中一个值是否为0的最佳方法是什么。通常我会使用像
这样的东西var somevar = (somevalue1 != 0 || somevalue2 != 0)?somevalue1 / somevalue2:0;
我必须检查很多值,所以想知道是否有更好,更智能的方法。
答案 0 :(得分:4)
您只需要检查分母以防止除以零。
所以
var somevar = somevalue2 != 0 ? somevalue1 / somevalue2 : 0;
更好,假设0是一个很好的默认值。
答案 1 :(得分:0)
有一种方法可以无需检查,无需异常处理。 这在数学上可能不是正确的方式,它是资源消耗,但仅用于信息:您可以始终使用浮点值,然后将它们切换为整数。
“浮点算术溢出或除零从不抛出异常,因为浮点类型基于IEEE 754,因此有表示无穷大和NaN(非数字)的条款。”(微软)
因此,如果你有一个没有例外的DivideByZero(通过无限常数),你可以很容易地检查。应该更具可读性。
// This will return "true".
bool isIninity = Double.IsInfinity(3.0 / 0) ? "true" : "false");