【发布时间】:2014-01-22 00:19:22
【问题描述】:
我试图在 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++ 中的整数自动“向下舍入”:12.9 -> 12,如果你想要真正的舍入,有一个
round()函数采用double -
整数被截断;他们不圆
-
您正在使用未分配的变量,这是未定义的行为。感谢您的编译器没有擦除您的磁盘。
-
负数的四舍五入曾经取决于机器。有人告诉我,较新的 C++ 标准改变了这一点。