Vetores de String e Double

Olá

Sou novo na programação e me deparei com este exercicio numa lista de um curso de Java que estou fazendo. Estou (tentando) compilar e executando o código pelo Prompt de comando e recebendo mensagens de “Conversão de Double para Int com perdas” e “Conversão de String para Int com perdas”.

baixo segue o código

public class produtos {
public static void main(String[] args) {

String produto [] = new String [10];
int vetor_codigo [] =  new int [10];
double vetor_preco [] = new double [10];
String produto_aum [] = new String [10];
int vetor_codigo_aum [] = new int [10];
double vetor_preco_aum [] = new double [10];
String nome;
int codigo;
double preco, novo_preco, preco_codigo;

for(int i = 0; i <= 10; i++){
	System.out.print("Insira o nome do Produto: ");
	produto[i] = System.console().readLine();
	
	System.out.print("Insira o codigo do produto: ");
	vetor_codigo[i] = Integer.parseInt(System.console().readLine());
	
	if(codigo %2 == 0){
		
		vetor_codigo_aum [i] = vetor_codigo_aum [codigo];
		
		preco_codigo = (preco/100)*15 + preco;
		
		System.out.print("Insira o Preço do produto: R$ ");
	    vetor_preco[i]  = Double.parseDouble(System.console().readLine());
		
		if(preco > 1000){
		
		novo_preco = (preco/100)*5 + preco_codigo;
		
		produto_aum [i] = produto_aum [nome];
		vetor_preco_aum [i] = vetor_preco_aum[novo_preco];
		}
		
		if(preco <= 1000){
			produto_aum [i] = produto_aum [nome];
			vetor_preco_aum [i] = vetor_preco_aum[preco_codigo];
		}
	}
	
	if(codigo % 2 != 0){
		System.out.print("Insira o Preço do produto: R$ ");
	    vetor_preco[i]  = Double.parseDouble(System.console().readLine());
		
		 if(preco > 1000){
		
		novo_preco = (preco/100)*10 + preco;
		
		produto_aum [i] = produto_aum [nome];
		vetor_codigo_aum [i] = vetor_codigo_aum [codigo];
		vetor_preco_aum [i] = vetor_preco_aum [novo_preco];
		 }
	}
}
		
		
   System.out.print("--> Lista de Produtos que sofreram aumento <--\n");
   System.out.print("Nome  Código  Preço Antigo  Preço novo\n");

for(int i = 0; i <= 10; i++){
	System.out.printf("  %s",produto[nome]);
	System.out.printf("  %d",vetor_codigo[codigo]);
	System.out.printf("   %f",vetor_preco[preco]);
	System.out.printf("   %f",vetor_preco_aum[novo_preco]);
}
}

}

recebendo mensagens de “Conversão de Double para Int com perdas” e “Conversão de String para Int com perdas”.

A resposta pra sua pergunta está no fato de entender como um tipo de variável “armazena” a informação

Eu gosto de comparar tipos de variáveis com caixas d’água

Imagine a seguinte situação:
Você tem uma caixa da água que armazena 100,20L (cem litros e 200minilitros) e você precisa transferir tudo pra uma caixa de 100L…

Ao fazer isso o que voce acha que vai acontecer?
Resposta: os 200ml vão perder, ou seja, no final vai estar com apenas 100L…

Isso é uma conversão de um Double/Float para um tipo Int. O tipo Int aceita apenas NUMEROS ANTES DA VÍRGULA/PONTO e desconsidera os decimais. A mesma coisa acontece com o tipo String para Int.

Trazendo isso pra nossa realizade seria algo mais ou menos assim:

double numero = 100.20;
int novoNumero;

novoNumero = numero;

System.out.println(novoNumero);

O resultado disso é:

100

Deu pra entender?