Java nao aceita int i == 08 ou 09

6 respostas
ghostta

Aew galera

Por que o java no aceita essa linha aqui:

com o 00, 01, 02, 03, 04, 05, 06 e 07 aceita mas com o 08 e 09 nao. Terei que passar pra String?

// 8			
			if(numero01 == 08)   //diz isso:: The literal Octal 08 (digit 8) of type int is out of range 
				list8+=" " +0 ;

// 9			
			if(numero01 == 09)
				list9+=" " +0 ;

6 Respostas

B

quando coloca um 0 na frente do valor vc está usando o sistrema octal, onde cada número vai de 0 a 7. retire o zero antes de cada valor, que vai estar utilizando decimal.

Marky.Vasconcelos

Quando coloca o 0 na frente voce trabalha no sistema octal
então o 08 que voce quiria seria 010 e o 9, 011
É isso mesmo que voce quer?

ghostta

valeu galera,

MArk_ameba testei esse e deu certo.

pra simplificar pode ser feito de dois jeitos:

// 8		
				
			if(numero01 == 010 || numero01 == 8)
				list8+=" " +0 ;
// 9			
			if(numero01 == 011 || numero01 == 9)
				list9+=" " +0 ;

Tambem testei assim e deu certo

int numero08 = Integer.parseInt( jTextField7.getText());
			String num8 = jTextField7.getText();
			int numero09 = Integer.parseInt( jTextField8.getText());
			String num9 = jTextField8.getText();

// 8		
				
			if(num1 == "08" || numero01 == 8)
				list8+=" " +0 ;
// 9			
			if(num1 == "09" || numero01 == 9)
				list9+=" " +0 ;
victorwss

Regra simples: Nunca coloque zero na frente dos seus números.
Números octais são essencialmente inúteis e apenas criam problemas e dor-de-cabeça que seriam desnecessárias se o Java decidisse não herdar essa idiotice do C.

ghostta

blza victoswss.

eu tb acho q esses numeros octais sao um problema

brunoonurbgyn

Isso resolve seu problema?

public static void main(String[] args) {
		int numero = 8;
		System.out.println(String.format("%02d", numero));
	}
Criado 21 de novembro de 2008
Ultima resposta 22 de nov. de 2008
Respostas 6
Participantes 5