为了账号安全,请及时绑定邮箱和手机立即绑定

C/C+中是否有标准符号函数(Signum,SGN)?

C/C+中是否有标准符号函数(Signum,SGN)?

C C++
青春有我 2019-07-04 12:34:17
C/C+中是否有标准符号函数(Signum,SGN)?我想要一个函数返回-1表示负数,+1表示正数。http://en.wikipedia.org/wiki/Sign_function写自己的东西很容易,但似乎应该在某个标准库中。编辑:具体来说,我在寻找一个在浮动上工作的函数。
查看完整描述

3 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

我不知道它的标准功能。不过,这里有一种有趣的方式来编写它:

(x > 0) - (x < 0)

下面是一种更易读的方法:

if (x > 0) return 1;if (x < 0) return -1;return 0;

如果您喜欢三元操作符,可以这样做:

(x > 0) ? 1 : ((x < 0) ? -1 : 0)


查看完整回答
反对 回复 2019-07-04
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

有一个C99数学库函数,名为写号(),它从一个参数中获取符号,从另一个参数获取绝对值:

result = copysign(1.0, value) // double
result = copysignf(1.0, value) // float
result = copysignl(1.0, value) // long double

将根据值的符号给出+/-1.0的结果。注意,浮点零有符号:(+0)将产生+1,(-0)将产生-1。


查看完整回答
反对 回复 2019-07-04
  • 3 回答
  • 0 关注
  • 4898 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信