Wil*_*ing 8 c c++ undefined-behavior
一切都在标题中.使用exp()和log()两个函数时如何检查可能的溢出?
gif*_*gkp 12
#include <errno.h>
Run Code Online (Sandbox Code Playgroud)
当发生一个流量时,则errno设置为ERANGE.
下次,在问之前做好功课.
谷歌搜索:"c ++ exp"将此作为第一个结果返回http://www.cplusplus.com/reference/cmath/exp/
在页面中间,您正在寻找什么.
要扩展@TheOtherGuy的答案,可以在发生溢出时取消操作.
#include <stdio.h>
#include <math.h>
#include <errno.h>
int main(void)
{
double param, result;
errno = 0;
param = 1e3;
result = exp (param);
if (errno == ERANGE) {
printf("exp(%f) overflows\n", param);
result = param;
}
printf ("The exponential value of %f is %f.\n", param, result );
return 0;
}
Run Code Online (Sandbox Code Playgroud)