Boa tarde pessoal… desde já pesso desculpa pela minha ignorancia mas a minha duvida é a seguite.
Eu quero criar um numero aleatório positivo. Depois de pesquisar vi que normalmente é usado o util.Random, então eu criei o seguinte codigo:
import java.util.Random;
public class Conta {
int numeroConta;
Random ale = new Random();
numeroConta = (ale.nextInt(1000) + 1) * 1000000000;
}
o que se passa é que ele continua a gerar numeros negativos quanto positivos. Alguem me consegue dizer qual o meu erro…
Pois todas as minhas pesquisas dizem que esse seria a maneira de criar apenas positivos inteiros.
Desde já meu muito obrigado
Você quer gerar qualquer número positivo, ou ele precisa ter uma certa quantidade de dígitos (ex: 7 dígitos)?
O próprio nextInt (com um parâmetro de tamanho) já gera números positivos, mas a sua multiplicação por 1000000000 pode estar fazendo o número gerado extrapolar o limite de representação de inteiros no Java, o que faz com que o resultado seja “estranho” (números negativos, por exemplo).
Abraço
Obrigado pela resposta… então voce acha que o problema está em eu multiplicar por um outro numero?
Irei então testar sem multiplicar, obrigado.
Boas penso que seria mesmo esse o problema.
Obrigado pela ajuda amigo. Abraço
Exatamente.
Qualquer número randômico acima de 2
fará essa multiplicação extrapolar, já que o valor máximo de um int
é 2147483647
.
Se precisar de um número maior, utilize long
.
Foi isso mesmo, nob a fazer nobices XD.
obrigado pela ajuda.
Abraços