假设我有43岁,我想将其四舍五入到50
更多示例:
41就是50
26将是30
21等于30
57将是60
我知道有一个round()函数,但是我认为如果原始数字以5或更少结尾时,它会以较小的数字取整...
我的代码:
int total = nomber1 + nomber2;
int roundedTotal = 0;
int control;
if (total % 10 == 0) {
control= 0;
} else {
control = roundedTotal - total ;
}
不要太在意计算。我需要知道的是如何将 total 取整为以0结尾的最大数字。
答案 0 :(得分:3)
使用整数
total = ((total + 10) / 10) * 10;
例如40
会给出50
。如果40
应该保留40
total = ((total + 9) / 10) * 10;
答案 1 :(得分:1)
将int舍入为以0结尾的最接近的int
我需要知道的是如何将总数取整到以0结尾的最大数字。
OP的代码接近了。
/platforms/ios/Pods/FBSDKShareKit/FBSDKShareKit/FBSDKShareKit/FBSDKShareDialog.m:513:52: error: no visible @interface for 'FBSDKApplicationDelegate' declares the selector 'openBridgeAPIRequest:useSafariViewController:fromViewController:completionBlock:
int round_greater_int0(int x) {
int least_decimal_digit = x%10; // -10 < least_decimal_digit < +10
if (least_decimal_digit >= 0) {
return x - least_decimal_digit + 10; // may overflow
}
return x - least_decimal_digit;
}
->50。这是OP的要求,但我怀疑这不是OP想要的。
round_greater_int0(40)
是用于浮点数学运算的函数,最好不要用于整数问题。许多细微的问题。
答案 2 :(得分:1)
这是一个使用普通计算和if
的解决方案。
total % 10
即可获得与10的立即数较小的整数之差。
例如:22
-> 22 % 10 = 2
22- 2 + 10 = 30
。如果您希望将10的倍数转换为10
的下一个最高倍数,只需将计算移出if
循环即可。
int c = 2;
int x = 18;
int total = x + c;
if(total % 10 != 0) {
total = total - (total%10) + 10;
}
else {
}
console.log(total);