[英]avoiding negative values in C++
我具有以下功能,并且我尝试通过包含if语句来避免出现负值,但这没有帮助。 有关如何解决此问题的建议...
double G(double S, double X, double r, double div, double k, double T)
{
double g=0;
g=Phi(d1(S,X,r,div,k,T))/(exp(-div*T)*S*k*sqrt(T));
if((isnan)(g) || (isinf)(g) || (g<0)) g=0;
return g;
}
您有一个正确的想法,但是语法有些偏离。 尝试这个:
double G(double S, double X, double r, double div, double k, double T)
{
double g=0;
g=Phi(d1(S,X,r,div,k,T))/(exp(-div*T)*S*k*sqrt(T));
if(isnan(g) || isinf(g) || (g<0)) g=0;
return g;
}
您是否在调用此函数时设置非双精度类型变量的值? 您收到任何警告吗? 那应该给你一个线索。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.