当前位置:  开发笔记 > 编程语言 > 正文

检查两个数字是否有不同符号的简单方法?

如何解决《检查两个数字是否有不同符号的简单方法?》经验,为你挑选了1个好方法。

我有两个浮点数ab.我想检查一下是否有不同的标志.简单的方法是看

bool b = a * b < 0;

但这两个数字非常小,a*b可能会下溢.还有其他简单的检查方法吗?

任何人认为这是一个重复的问题,请给我一个完全符合条件的答案a * b < 0.请注意,在我的问题中,0的符号未定义.



1> 101010..:

您可以使用std :: signbit,如下所示:

bool c = std::signbit(a) == std::signbit(b);

现场演示

另一种方法是使用std :: copysign,如下所示:

bool c = std::copysign(a,b) == a;

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有