int a=000123,b=1
int len=(int)Math.log10(a)+1;
while((a=a/10)!=0)
{
++b;
}
System.out.println("Number of Digits:"+b);
출력 : 자릿수 : 3 왼쪽에서 발생하는 경우 0을 계산하지 않습니다. 제로로 숫자를 세는 방법이 있습니까?숫자가 0으로 시작하는 경우 정수에서 자릿수를 찾는 방법은 무엇입니까?
int a=000123,b=1
int len=(int)Math.log10(a)+1;
while((a=a/10)!=0)
{
++b;
}
System.out.println("Number of Digits:"+b);
출력 : 자릿수 : 3 왼쪽에서 발생하는 경우 0을 계산하지 않습니다. 제로로 숫자를 세는 방법이 있습니까?숫자가 0으로 시작하는 경우 정수에서 자릿수를 찾는 방법은 무엇입니까?
안녕하세요 난 당신이 할 수 가장 좋은 문자열로 숫자를 얻을 당신이 일
"캐스트"라는 단어를 사용하는 데주의하십시오. 'Integer.parseInt'가 대신 필요합니다. – byxor
이 당신의 사이드 라이트 일지 모르지만 나는 어떤 논리가 아닌가요? –
네 shure 네가 늙은 habbitsn 내가 대답을 변경합니다 –
을 계산하고자 할 때 nteger.parseInt를 사용하여 int로 캐스팅이라고 할 수 있다고 생각하지 않습니다 자사의 int하는 경우 (그리고 문자열이 아닌), 정의 할 때 앞에 0의 개수가 저장되지 않습니다. 000123
은 정확히 0123
과 같습니다. 그러나 숫자를 0으로 시작하면 (하나 또는 여러 개) 8 진수로 숫자를 정의하는 것입니다. 따라서 int a=000123; System.out.println(a);
은 83
을 출력합니다.
'int' 대신'String'을 사용하십시오. 0은 Java에서 생각하는 것과는 다른 의미입니다. – Eran
이 작업을 수행하려면 문자열을 사용해야합니다. 정수는 선행 0을 저장하지 않습니다. –
조심하십시오. '000123' (java가 8 진이라고 생각하는)은 실제로는 83입니다 (십진수). – byxor