Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

No Java quando uso int ou double

Uma duvida, já que o int não aceita número decimal e o double aceita decimal e inteiro , seria uma boa prática utilizar o double sempre?

Penso nisso para futuras manutenções, ou estou equivocado?

Caso não seja boa prática, gostaria de me familiarizar, como vocês atuam nesses casos em projetos reais, como fazem essa separação?

Obrigado e desculpa por essa pergunta, mas sou novo aqui :)

2 respostas
solução!

Olá Thiago, tudo bom?

Normalmente variáveis double são utilizadas apenas em cenários que possua a possibilidade de frações mesmo, como o valor de uma TV, um empréstimo bancário, valor de um carro, e outros exemplos seguindo esta trilha.

Já as variáveis int, normalmente são utilizadas para mensurar a quantidade de ocorrências de algo, como por exemplo número de propostas de lances em um carro que está em leilão, quantidade de elementos dentro de uma lista.

Para o cenário abaixo, suponhamos que a classe Leilao possui uma lista com vários produtos disponíveis no leilão, ou seja, possui uma List, cada produto por si só, possui um valor que representa quantas copias deste produto ainda estão em estoque. Por exemplo, podemos ter 3 TVs em estoque e 9 Carros em estoque, desta forma, o método abaixo retornaria 12 (3+9) como quantidade de produtos do leilão que estão em estoque. Você então recebeu a proposta de avaliar a complexidade deste método que realiza esse cálculo, o qtdTotalDeProdutosDoLeilaoEmEstoque:

//Retorna a quantidade de produtos em estoque
private double qtdTotalDeProdutosDoLeilaoEmEstoque(Leilao leilao) {
    double qntTotalDeProdutosNoLeilao = 0.0;
    for(Produto produto : leilao.getProdutos()) {
        qntTotalDeProdutosNoLeilao += produto.qntDisponivel();
    }

    return qntTotalDeProdutosNoLeilao;
}

Não sei você, mas a primeira coisa que eu faria ao ler este código seria me perguntar "Porque a quantidade está como double? É possível que haja algo como 'meio' produto? Vou dar uma olhada na classe...", por tanto, a não utilização do int neste cenário teria gerado confusão!

//Retorna a quantidade de produtos em estoque
private int qtdTotalDeProdutosDoLeilaoEmEstoque(Leilao leilao) {
    int qntTotalDeProdutosEmEstoque= 0.0;
    for(Produto produto : leilao.getProdutos()) {
        qntTotalDeProdutosEmEstoque += produto.qntDisponivel();
    }

    return qntTotalDeProdutosNoLeilao;
}

Da forma acima eu aparentemente não ganhei nada, porém eu não perdi tempo e não fiquei confuso quando li da primeira vez, pois faz um pouco mais de sentido agora! Não é estranho quando lemos pela primeira vez.

Se ainda estiver com dúvida, basta perguntar :)

Verdade, quando li você explicando sobre ter meio produto ficou claro onde e quando, podemos e devemos usar.

Muito obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software