C中的整数舍入
发布时间:2020-12-16 10:34:06 所属栏目:百科 来源:网络整理
导读:我试图在c中使用下面的公式.我将这两个变量声明为整数,我希望它们可以向上舍入,但它们似乎正在向下舍入.我已经看过这个,但似乎无法找到错误.任何帮助将不胜感激. int user_degrees_latitude,user_degrees_longitude;const int lat_const=(-90)const int long
我试图在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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |