nat*_*sau 0 c++ floating-point
这就是我想要做的事情:
取一个双(介于-1和1之间)并将其投射到浮子上.但我想确保浮动总是小于双倍.
有没有直接的方法来做到这一点?
作为参考,这是我想出的东西.
float DoubleToSmallerFloat (double X) // ex. X = 0.79828470019999997
{
float Y = X; // 0.79828471 -> note this is greater than X
double Diff = X - Y;
return Y - Abs (Diff) * 10;
}
Run Code Online (Sandbox Code Playgroud)
如果您能够使用C++ 11,那么您可以使用nextafter():
float doubleToSmallerFloat(double x) {
float f = x;
return f < x ? f : nextafter(f, -1.0f);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |