c – 将浮点数缩小至给定精度 - 代码日志

c – 将浮点数缩小至给定精度

我想要将浮点数舍入给定精度,例如:

0.051 i want to convert it to
0.1

0.049 i want to convert it to
0.0

0.56 i want to convert it to
0.6

0.54 i want to convert it to
0.5

我不能更好地解释它,但是其原因是将点位置(如0.131f,0.432f)转换为网格中的图块位置(如0.1f,0.4f)。

有没有办法实现这一点?

只要您的网格是规则的,只需找到从整数到此网格的转换。所以让我们说你的网格是

0.2  0.4  0.6  ...

然后你绕过

float round(float f)
{
    return floor(f * 5 + 0.5) / 5;
    // return std::round(f * 5) / 5; // C++11
}
http://stackoverflow.com/questions/11208971/round-a-float-to-a-given-precision

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c – 将浮点数缩小至给定精度