Questions tagged «divide-by-zero»

4
如何捕获像异常一样的numpy警告(不仅用于测试)?
我必须在Python中为正在执行的项目制作Lagrange多项式。我正在做一个重心样式,以避免使用显式的for循环,而不是牛顿的分差样式。我的问题是我需要用零除,但是Python(或者也许是numpy)只是将其警告而不是正常异常。 因此,我需要知道的是如何捕获此警告,就像它是一个例外一样。我在本网站上发现的与此相关的问题并未按照我需要的方式回答。这是我的代码: import numpy as np import matplotlib.pyplot as plt import warnings class Lagrange: def __init__(self, xPts, yPts): self.xPts = np.array(xPts) self.yPts = np.array(yPts) self.degree = len(xPts)-1 self.weights = np.array([np.product([x_j - x_i for x_j in xPts if x_j != x_i]) for x_i in xPts]) def __call__(self, x): warnings.filterwarnings("error") try: bigNumerator …

4
不管结果如何,最快的整数除法支持零除法?
摘要: 我正在寻找最快的计算方法 (int) x / (int) y 毫无例外的y==0。相反,我只想要一个任意结果。 背景: 在对图像处理算法进行编码时,我经常需要除以(累积的)alpha值。最简单的变体是带有整数算术的纯C代码。我的问题是,对于具有的结果像素,通常会得到零除误差alpha==0。但是,这恰好是像素,其结果根本不重要:我不在乎使用的像素的颜色值alpha==0。 细节: 我正在寻找类似的东西: result = (y==0)? 0 : x/y; 要么 result = x / MAX( y, 1 ); x和y是正整数。该代码在嵌套循环中执行了很多次,因此我正在寻找一种摆脱条件分支的方法。 当y不超过字节范围时,我对解决方案感到满意 unsigned char kill_zero_table[256] = { 1, 1, 2, 3, 4, 5, 6, 7, [...] 255 }; [...] result = x / …

8
如何用零除返回0
我正在尝试在python中执行元素明智的除法,但是如果遇到零,我需要将商设为零。 例如: array1 = np.array([0, 1, 2]) array2 = np.array([0, 1, 1]) array1 / array2 # should be np.array([0, 1, 2]) 我总是可以在数据中使用for循环,但是要真正利用numpy的优化,我需要除法函数在除以零错误后返回0,而不是忽略错误。 除非我缺少任何东西,否则numpy.seterr()似乎不会在出现错误时返回值。在设置自己的除以零的错误处理方法时,还有人对我如何从numpy中获得最大收益有其他建议吗?

7
C ++警告:双零除数
情况1: #include <iostream> int main() { double d = 15.50; std::cout<<(d/0.0)<<std::endl; } 它在编译时没有任何警告和打印inf。好的,C ++可以处理零除(实时查看)。 但, 情况2: #include <iostream> int main() { double d = 15.50; std::cout<<(d/0)<<std::endl; } 编译器发出以下警告(实时查看): warning: division by zero [-Wdiv-by-zero] std::cout<<(d/0)<<std::endl; 为什么在第二种情况下编译器会发出警告? 是0 != 0.0吗 编辑: #include <iostream> int main() { if(0 == 0.0) std::cout<<"Same"<<std::endl; else std::cout<<"Not …


5
避免在PostgreSQL中被零除
我想在SELECT子句中执行除法。当我加入一些表并使用聚合函数时,我通常将null或零值用作分隔符。到目前为止,我只想出这种避免被零值和空值相除的方法。 (CASE(COALESCE(COUNT(column_name),1)) WHEN 0 THEN 1 ELSE (COALESCE(COUNT(column_name),1)) END) 我想知道是否有更好的方法?


5
除以0.0时,为什么Java不抛出异常?
我有代码来计算两个数字之间的百分比差(oldNum - newNum) / oldNum * 100;--两个数字均为doubles。我希望在oldNum为0的情况下必须添加某种检查/异常处理。但是,当我对oldNum和newNum的值均为0.0进行测试运行时,执行继续,就好像什么都没有发生并且没有引发任何错误。使用ints来运行此代码肯定会导致算术除零异常。为什么Java在涉及doubles时会忽略它?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.