作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
调音符(A,B)的简单方法
if (A < X && X < B) ...
不过貌似+INF,.NAN也在调音区
最佳答案
您的条件不是音程(diapason)。它在功能上等同于
X < std::min(A, B)
你只有一个上限,根本没有下限。
NaN 和 +Inf 的确切行为取决于浮点表示,这不是由 C++ 标准指定的,而是特定于 cpu 的。
如果我们假设通常使用的 IEEE-754,则 X=+Inf 和 X=NaN 都不能满足 A 和 B 的任何值的条件。
这是检查 float 是否在下限和上限之间(但两者都不相等)的方法:
X > low && X < high
或
low < X && X < high
同样,如果我们假设 IEEE-754,那么 X=+Inf 和 X=NaN 都不能满足任何低值和高值的条件。但是,由于可能无法保证 IEEE-754,因此未指定此类数字的行为。您可能需要明确支持外来硬件:
low < X && X < high && std::isfinite(X)
关于c++ - 如何在 C++ 中检查音调中的 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38502039/
我是一名优秀的程序员,十分优秀!