Como fazer para declarar uma matriz em que cada valor seja um número de 10 dígitos ?
Já tentei vários tipos mas continua dando erro de “out of range”.
Obrigado!
Como fazer para declarar uma matriz em que cada valor seja um número de 10 dígitos ?
Já tentei vários tipos mas continua dando erro de “out of range”.
Obrigado!
Mas quem informa esses valores?
o user ou um Math.random(); ja basta?
out of range em português é fora do alcance… Nunca me aconteceu,
mas creio eu que é por causa do tipo primitivo que vc usa, dei uma olhada na internet, e vi que o mais apropriado para essa situação é o
tipo long, pois o tipo int so aceita número de - 2.147.483.648 a + 2.147.483.647.
nessa questão, o long se torna mais apropriado.
não vou garantir que funcione, pois eu mesmo não testei e nunca me utilizei desse método.
Se ocorrer erros nas matriz, perdoe-me também, pois eu me baseiei numa apostila que meu professor me deu, pois eu ainda estou em array na faculdade,
e estou nos ultimos exercicios.
Obrigado.
poderia ser assim:
para definir números em Math.random() com 10 digitos;
long teste[][] = new long[3][3];
for(int i=0;i<teste.length;i++){
for(int j=0;j<m[0].length;j++){//m.[0].length retorna o número de colunas da matriz.
teste[i][j] = (int) (Math.random()*1000000000);
}
}
Esse seria o código para criar matrizes 3x3 com valores randomicos de 10 digitos.
agora, se vc deseja criar a matriz já com os valores, faça assim:
n de 10 dg significa número de 10 digitos.
long teste[][] = {{n de 10 dg,n de 10 dg,n de 10 dg},{n de 10 dg,n de 10 dg,n de 10 dg},{n de 10 dg,n de 10 dg,n de 10 dg}};
Dessa forma, vc específica os valores na hora da criação. Veja que en cada {} dentro da {} principal, vc define os valores de uma linha.
>
ByIvo, não é esse o meu problema. O que está acontecendo é um coisa simples, que pra mim ta dando um erro sem sentido.
Tipo, ja tentei declarar minha matriz com vários tipos e fica dizendo que alguns dos campos da matriz estão fora de escala. Já usei
long, int, bigInt, double e continua na mesma =/
A minha matriz tem como componentes esses números:
3174002639, 1608498106, 711649792, 3229618260, 1442166141, 1869606831
Esses que estão em negrito são os números em que o erro está! Dizendo que está fora de escala.
Pelo que vi o problema é o seguinte apesar de você estar declarando o array com outro tipo diferente do int o compilador continua dando o erro de “estouro”, isto ocorre porque os números inteiro escrito em Java são tratados como int. Você precisa “forçar” o long, para isto é só utilizar ‘l’ ou ‘L’ no final do número.
Fiz o teste abaixo e o mesmo está rodando:
class TesteMatriz{
public static void main(String [] args){
long [] array = new long[6];
array[0] = 3174002639l;
array[1] = 1608498106l;
array[2] = 711649792l;
array[3] = 3229618260l;
array[4] = 1442166141l;
array[5] = 1869606831l;
for(long x : array){
System.out.println(x);
}
}
}
Espero ter ajudado!!!