https://ac.nowcoder.com/acm/problem/22006 牛客网上的一道题 四舍五入
while (true){
System.out.print("请输入(输入-1结束):");
Scanner in = new Scanner(System.in);
String next = in.next();
if (next.equals("-1")){
break;
}
Integer[] szNum = new Integer[next.length()];
for (int a = 0; a < next.length(); a++){
szNum[a] = Integer.parseInt(next.substring(a, a + 1));
}
for (int x = szNum.length - 1; x > -1; x--){
if (szNum[x] > 4 && x > 0){
szNum[x - 1] = szNum[x - 1] + 1;
szNum[x] = 0;
}else{
if (x == szNum.length - 1){
szNum[x] = 0;
}
break;
}
}
String num = "";
for (Integer integer : szNum) {
num += integer;
}
System.out.println(Arrays.toString(szNum));
System.out.println("最终数字:" + num);
}
试下这个,可以在int数值的范围内无线向上四舍五入
转字符串取最后一位,然后转成数字判断大于4还是小于等于4
大于4源数字 + 10 - 个位数
否则直接 - 个位数
int result = (n/10 + (n%10 < 5 ? 0 : 1)) * 10;
第一次看错题了。。
public static void main(String args[]) {
int num = new Random().nextInt(1000000000);
int result;
String numStr = num + "";
String lastNumStr = numStr.substring(numStr.length() - 1);
int lastNum = Integer.parseInt(lastNumStr);
if (lastNum > 4) {
result = num + 10 - lastNum;
} else {
result = num - lastNum;
}
System.out.println("随机数:" + num);
System.out.println("四舍五入结果:" + result);
}
代码如下 :如有帮助,请采纳一下,谢谢。
int func(int d)
{
int s = d % 10;
int ss = d - s;
if(s >= 5)
return ss + 10;
else
return ss;
}