我的C ++程序中有简单的公式:
const double z = x / tan(y);
x
的数字是1000到10 * 1000,
y
任何角度。
保护代码免于零分割的正确方法是什么?
我的意思是,我知道如果tan(y)
接近零(使用哪个其他公式)该怎么办,
但是如何检查tan(y) ~ 0
- 用于检查的常量:
const double tn = tan(y);
if (fabs(tn) < EPS) {
z = some other formula;
} else {
z = x / tn;
}
我应该采取什么EPS
来防止浮点异常?