【发布时间】:2011-07-23 11:41:30
【问题描述】:
我想知道是什么使 c++ 中的浮点数 nan。我正在使用一个大型数据集,而且很难追踪。我想知道将浮点数更改为 nan 以减少错误可能性的方法。
我找到了导致 nan 问题的代码。我发现在某些情况下 s/m 是 nan。但是不知道怎么解决。
float gp(float x){
float e = 2.71828183;
x *= -1;
float s = pow(e,x);
float m = (1 + pow(e,x)) * (1 + pow(e,x));
return s / m;}
【问题讨论】:
-
您的代码中是否有任何未经检查的强制转换?我几乎可以肯定,如果您只在定义明确(= 正确初始化的非 NaN)值上使用 +、– 和 *,您将无法获得 NaN。
-
我在这里发布了一些代码。你认为这会造成问题吗?
-
无限乘以零(如我的回答中所述)是可能的
-
我编辑了这个问题。你能看一下吗?
标签: c++ floating-point nan