我想向 BigInt 添加前导零,如果 BigInt 的位数少于 10 位,则应该添加填充零,并且我必须稍后用该数字进行计算。
到目前为止,这就是我的解决方案:
BigInteger bankAccountNumber = new BigInteger("999999999");
BigInteger zero = new BigInteger("10000000");
public void checksum(){
if(bankAccountNumber.toString().length()<10){
while(bankAccountNumber.toString().length()<10){
}
System.out.println(bankAccountNumber);
}
System.out.println(bankAccountNumber.toString().length());
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我无法想出一种方法,其中包括bankAccountNumber是一个带有前导0的实数,因为我必须稍后将数字与另一个BigInt结合起来,这应该包括前导零,我得到的只是一个带有前导的输出零,但我无法计算,所以这就是我的问题,谢谢你的帮助。
注意:正如一些评论已经指出的那样,您在这里从根本上应用了错误的方法。如果“加 1”对某事物没有意义,那么它就不是一个数字。将 1 添加到银行帐户不会执行任何明智的操作,因此,您最有可能应该将其存储为字符串。除了扩展的类之外的任何东西Number。
BigInteger 不是这样工作的。它不是一根绳子上的轻质包装纸。您不能向其中添加前导零。
相反,在打印BigInteger 时(将其从标准内存表示形式转换为一堆字符,例如显示给用户),您可以指示您想要如何执行此操作,并且作为其中的一部分,您可以说:...如果需要的话用零填充。
BigInteger example = BigInteger.ONE;
String ex = String.format("This is the number: %012d", example);
System.out.println(ex);
Run Code Online (Sandbox Code Playgroud)
这将按This is the number: 000000000001您想要的方式打印。%012dstring-format-ese 的意思是:“我想打印一个整数 ( d),至少占用 12 个字符槽 ( 12),如果 12 大于渲染所需的字符数example,则用零填充它 ( 0) 。
| 归档时间: |
|
| 查看次数: |
699 次 |
| 最近记录: |