我写了一个Sign函数,我想知道它是否正确(我要知道愚蠢的问题!)我只是想知道这是否是解决这个特定任务的最佳方法:
template<typename T>
T sign(T n)
{
if(n < 0) return -1;
if(n > 0) return 1;
return 0;
}
这会为大型数据集提供足够准确的结果吗?任何人都可以看到一个问题,当我把它放到现实生活中时可能会出现这个问题吗?
由于
答案 0 :(得分:4)
我会将return 0;
更改为return n;
。如果n
为NaN
,则sign
应返回NaN
,而不是0
。