我需要围绕一个双尾,因为它最后以49和99结束,fx数字2138应该舍入到2149,而数字2150应该舍入到99,这使得数字1-48变为49并且50-98到99 我发现它的一切都是关于将十进制舍入到.99, 它必须是double,因为该值已经使用以下代码舍入到0位小数:
DecimalFormat decimalFormat = new DecimalFormat("#");
String fromattedDouble = decimalFormat.format(xxx);
答案 0 :(得分:1)
这应该做你想要的:
public static int round(int value) {
return ((value + 50) / 50 * 50) - 1;
}
答案 1 :(得分:1)
您可以使用此方法:
form:
title: 'Create User'
fields:
- { other fileds ...}
- { property: 'expiredAt', label: 'Credentials expired at', type_options: {'widget': 'single_text', 'format': 'dd/MM/yyyy H:mm', 'attr': {'class': 'datepicker'}} }
测试用例
public static int round(double value) {
value = Math.round(value);
return (int)(value-(value%50))+49;
}
答案 2 :(得分:0)
您可以使用的一个技巧是将当前数字加倍,将其四舍五入到最接近的100,然后除以2:
int start = 2132; // 2132
start = start*2; // 4264
start = (start + 50) / 100 * 100; // (4264 + 50) / 100 * 100 = 4300
start = start / 2; // 2150
start = start - 1; // 2149
使用这个逻辑:
2100 -> 2099
2132 -> 2149
2150 -> 2149
答案 3 :(得分:0)
以下方法具有预期效果:
static int round_to_49(int i) {
return ((i+50)/50*50)-1;
}
示例:
50: 99
46: 49
145: 149
154: 199