2013-04-23 59 views
1

我想不出一个更好的方法来留下一个整数零而不先将其转换为一个字符串。有没有办法做到这一点?我发现了很多关于这个问题的问题,但他们都需要一个字符串转换。我明白,我们可以找到长度这种方法:有没有一种很好的方式来填充零而不将它转换为字符串?

int length = (num==0) ? 1 : (int)Math.log10(num) + 1; 

然而,这仍然需要我将其转换为字符串和背部之后。当然,还有更好的办法吗?

+0

“左垫”意味着什么。它对整数而言意味着什么(因为不变);它仅适用于整数的视觉(文本)表示。当你打印一个整数时,它被转换成一个字符串。 – 2013-04-23 14:32:24

回答

4

No. int表示数学整数值,表示为32位。数字0001是1,并且具有唯一的二进制表示。左侧填充的整数不是整数。他们是弦乐队。

1

不可以。数字类型不能包含前导零。格式化的文本表示这是一个特点,即Strings

0

既然你已经有了我猜前导零米的长度仅仅为输出,但最终你的问题是由另外两个海报回答。

int length = (num==0) ? 1 : (int)Math.log10(num) + 1; 
String zeros; 
for(int i=0; i<length; i++) { 
    zeros = zeros.concat("0"); 
} 
System.out.println(zeros + num); 
相关问题