用Java找到离一个数最近的那个全是0位的数

例如
public static void main(String[] args) {
int i = 65532;
i /= 6;
System.out.println(i);
}
输出
10922
则找出10000

public static void main(String[] args) {
    int i = 216532;
    i /= 6;
    System.out.println(i);
}

输出
36088
则找出40000


package test2;

import java.math.BigDecimal;

/**
 * @author wf
 */
public class TestUp {
    public static void main(String[] args) {
        int i = 216532;
        i = i/6;
        System.out.println(i);
        System.out.println(getLowSize(i));
    }

    public static int getLowSize(int i) {
        if (i == 0) {
            return 0;
        }
        String str = i + "";
        if (str.contains("-")) {
            // 先去掉符号
            str = str.substring(1);
        }
        // 得到最高位
        int maxUnit = Integer.parseInt(str.charAt(0) + "");
        int ten = new BigDecimal(1).scaleByPowerOfTen(str.length() - 1).intValue();
        int min = i - maxUnit * ten;
        int max = (maxUnit + 1) * ten -i;
        return max > min ? maxUnit * ten : (maxUnit + 1) * ten;
    }
}

先转字符串,判断i有几位数,比如是n位
然后判断10的n次方和10的n+1次方减去i谁小

源码贴再最下面

img

img

import java.util.*;
public class Main {
    public static void main(String[] args) {
        int i = 36088;
        int p=(i+"").length();
        double v=Math.pow(10,p-1);
        int h=(int)v  ;
        int h1=h*(int)Math.ceil((double)i/h);
        System.out.println(h1);
    }
}

判断第二位是否比5小;
比5小:首位不变,后面的全改成0;
否则:首位加1,后面的全改成0


     int i=123456;
      String str= String.valueOf(i);
      int len= str.length();
     
      int oneNumber= Integer.parseInt(str.substring(0,1));
      int twoNumber= Integer.parseInt(str.substring(1,2));
      str=oneNumber+"";
        System.out.println();
        System.out.println(twoNumber);
        if (twoNumber>=5){
            oneNumber++;
        }
        for (int j=0;j<len-1;j++){
        str+="0";
        }
        System.out.println(str);

img