3
respostas

Continua imprimindo o valor 0.30000000000000004 por quê?


public class TestaConversao {
    public static void main (String [] args) {
        float pontoFlutuante = 3.14f;

        double salario = 1235.50;
        int valor = (int) salario;

        System.out.println("valor do salario é: " + valor);

        double valor1 = 0.1;
        double valor2 = 0.2;
        double total = valor1 + valor2;

        System.out.println(total);
    }
}
3 respostas

Fala ai Ronald, tudo bem ?

Não se assuste, fique calmo, isso é algo bem comum quando trabalhamos com doubles, eles são inexatos, assim como o float.

Há algumas maneiras de solucionar isso, que serão vistas nos próximos cursos.

Acho que seria legal você colocar o f na frente do valor, por exemplo: double valor1 = 0.1f; double valor2 = 0.2f; double total = valor1 + valor2; System.out.println(total); Acredito que vai dar certo a compilação sem o 0.300000...

Existem variáveis mais especificas para lidar com números grandes com mais exatidão, mas não vou te dar spoilers, daqui a pouco vc vai ver.