我正在使用long
将String
转换为String.format()
。当数字> 0时,它工作正常,但是当我向数字添加前导零时,我在输出中得到一个不同的数字。我的要求是在传递前导零时向用户显示前导零。请指教。
public class CreateContractNumber {
public static void main(String[] args) {
long account = 0000123;
long schedule = 001;
CreateContractNumber ccn = new CreateContractNumber();
System.out.println("CONTRACT #: "+ccn.createContNbr(account, schedule));
}
private String createContNbr(long account, long schedule) {
StringBuilder sb = new StringBuilder();
sb.append(String.format("%07d", account);
sb.append("-");
sb.append(String.format("%03d", schedule);
return sb.toString();
}
}
实际输出: 合同#:0000083-001
预期产出: 合同#:0000123-001
答案 0 :(得分:7)
long account = 0000123;
是八进制数。 0123 oct是83 dec,这使你的输出正确。如果你需要123 dec,只需写long account = 123;
,因为前导零对long
中存储的值没有影响。