本文的内容参考<<C标准库>>
math函数的目标和使用指南
一
每个函数产生的结果都要具有56位的精度
二
每一个函数都应该能接受定义域内的所有参数值.对于其它所有参数都应该报告定义域错误,并返回一个表示非数字的特殊编码NaN
三
对于一个具体的值,函数应该产生一个确定的结果.对于所有太大或者太小而不能表示的值,报告值域错误.结果数值过大,函数返回一个表示正无穷大的编码+Inf,或者表一负无穷大的编码 -Inf ; 如果数值太小,函数返回零.
四
对于参数值-Inf, + Inf 和NaN ,每一个函数都应该产生最合理的结果.列如一个函数只有一个参数,并且那个参数的值为NaN ,那么这个函数就返回参数值
五
对任何可以表示的结果,每个函数都应该竟可能的控制误差在两位之内
六
无论一个函数的参数或者结果是什么,它都不应该产生上溢,或者下溢,或者清零的情况.
七
每一个函数一般都使用双精度,而不是浮点来表示中间结果.
<math.h>声明了一些数学函数,并定义了一个宏(HUGE_VAL),这些数学函数接收double 类型的参数,并返回一个double类型的值.