Java提取整数末尾两位数字 输出前导零丢失问题求助
问题成因
- 数值类型无前置零属性:取模运算得到的
1属于数值类数据,不管是double还是int类型,仅会存储数字的实际大小,前置零属于字符串格式化展示的规则,不属于数值本身的内容,直接打印数值自然不会显示前置零。 - 数据类型选择错误:使用double类型存储整数存在精度丢失风险,整数处理场景应当优先使用int、long等整型类型。
解决方法
可通过格式化输出的方式补足两位前置零,修改后代码如下:
public class Main { public static void main(String[] args) { long num = 10000001; long digit = num % 100; // %02d表示输出2位十进制整数,位数不足时自动在左侧补0 System.out.println(String.format("%02d", digit)); } }
如果偏好字符串处理的方式也可以使用以下实现:
public class Main { public static void main(String[] args) { long num = 10000001; String numStr = "0" + num; // 补0后截取最后两位即可覆盖所有位数场景 String lastTwoDigits = numStr.substring(numStr.length() - 2); System.out.println(lastTwoDigits); } }
两种方案运行后均会输出预期结果01。
内容的提问来源于stack exchange,提问作者user15536561
相关产品推荐
相关产品推荐

