我有两个浮点数a和b.我想检查一下是否有不同的标志.简单的方法是看
bool b = a * b < 0;
Run Code Online (Sandbox Code Playgroud)
但这两个数字非常小,a*b可能会下溢.还有其他简单的检查方法吗?
任何人认为这是一个重复的问题,请给我一个完全符合条件的答案a * b < 0.请注意,在我的问题中,0的符号未定义.
您可以使用std :: signbit,如下所示:
bool c = std::signbit(a) == std::signbit(b);
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用std :: copysign,如下所示:
bool c = std::copysign(a,b) == a;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1617 次 |
| 最近记录: |