文件名称:attach_20120629133131
介绍说明--下载内容均来自于网络,请自行研究使用
捕获数学函数异常
假如我们要用一个数学函数,比如反正弦函数asin(x),如果变元x的值是由用户提供或某个中间结果,则在调用时必须判断其取值范围是合理,是否满|x|<=1?即
view sourceprint?
1.if(fabs(x)<=1)
2.
y=asin(x)
3.else
4.
y=…
对数函数也可作类似的处理。但是如果遇到幂函数pow(x,y)时,问题就不那么简单了。仔细分析将发现:
y
x 负小数 负整数 0 整数 小数
负小数 无意义 有意义 有意义 有意义 无意义
负整数 无意义 有意义 有意义 有意义 无意义
0 无意义 无意义 有意义 有意义 有意义
整数 有意义 有意义 有意义 有意义 有意义
小数 有意义 有意义 有意义 有意义 有意义
例如:pow(-1.2,-1.2)=-1.#IND。如果要编程处理,至少需要六个if语句。即使如此,也有麻烦:如何判断一个double型的变元的值是整数还是小数?
为了处理数学函数运算中出现的异常,VC++提供了一个函数_mather,其原型在中:
view sourceprint?
1.int _matherr( struct _exception *except ) -Capture mathematical function abnormalities
假如我们要用一个数学函数,比如反正弦函数asin(x),如果变元x的值是由用户提供或某个中间结果,则在调用时必须判断其取值范围是合理,是否满|x|<=1?即
view sourceprint?
1.if(fabs(x)<=1)
2.
y=asin(x)
3.else
4.
y=…
对数函数也可作类似的处理。但是如果遇到幂函数pow(x,y)时,问题就不那么简单了。仔细分析将发现:
y
x 负小数 负整数 0 整数 小数
负小数 无意义 有意义 有意义 有意义 无意义
负整数 无意义 有意义 有意义 有意义 无意义
0 无意义 无意义 有意义 有意义 有意义
整数 有意义 有意义 有意义 有意义 有意义
小数 有意义 有意义 有意义 有意义 有意义
例如:pow(-1.2,-1.2)=-1.#IND。如果要编程处理,至少需要六个if语句。即使如此,也有麻烦:如何判断一个double型的变元的值是整数还是小数?
为了处理数学函数运算中出现的异常,VC++提供了一个函数_mather,其原型在中:
view sourceprint?
1.int _matherr( struct _exception *except ) -Capture mathematical function abnormalities
(系统自动生成,下载前可以参看下载内容)
下载文件列表
MathErrTest
...........\MathErrTest
...........\...........\copyright.bat
...........\...........\MathErrTest.cpp
...........\...........\MathErrTest.dsp
...........\...........\MathErrTest.dsw
...........\...........\MathErrTest.plg
...........\...........\StdAfx.cpp
...........\...........\StdAfx.h