elephpant 2022-05-18 15:34 采纳率: 76.2%
浏览 29
已结题

用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

  • 写回答

5条回答 默认 最新

  • 小飞LOVE霞 2022-05-18 16:22
    关注
    
    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;
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 5月26日
  • 已采纳回答 5月18日
  • 创建了问题 5月18日