过零标志功能

时间:2012-11-14 15:03:04

标签: c++ function math sign

我写了一个Sign函数,我想知道它是否正确(我要知道愚蠢的问题!)我只是想知道这是否是解决这个特定任务的最佳方法:

template<typename T>
T sign(T n)
{
  if(n < 0) return -1;
  if(n > 0) return 1;
  return 0;
}

这会为大型数据集提供足够准确的结果吗?任何人都可以看到一个问题,当我把它放到现实生活中时可能会出现这个问题吗?

由于

1 个答案:

答案 0 :(得分:4)

我会将return 0;更改为return n;。如果nNaN,则sign应返回NaN,而不是0