我试图在 C++ 中使用下面的公式。我将两个变量都声明为整数,我希望它们向上舍入,但它们似乎向下舍入。我已经看过这个但似乎无法找到问题所在。任何帮助将不胜感激。
int user_degrees_latitude, user_degrees_longitude;
const int lat_const=(-90)
const int long_const=(-180)
sector_latitude = (user_degrees_latitude - lat_const) / (10);
sector_longitude = (user_degrees_longitude - long_const) / (10);
sector_latitude 的答案应为 13,sector_longitude 的答案应为 11,但计算机分别向下舍入为 12 和 10。
最佳答案
在 C++ 中,整数不四舍五入。相反,整数除法会截断(读作:总是向零舍入)除法的剩余部分。
如果你想对正整数产生舍入效果,你可以这样写:
sector_latitude = static_cast<int>(((user_degrees_latitude - lat_const) / (10.0)) + 0.5);
加上0.5会导致截断产生舍入效果。请注意在 10.0
上添加 .0
以在添加之前强制进行浮点除法。
我还假设 sector_latitude
是一个带有转换的 int。
关于c++ - C++ 中的整数舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21271815/