Ajuda com classe math

Não consigo arredondar o salário usando o Math.round
Por que?


import java.util.Scanner;
import java.lang.Math;

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

 Scanner input = new Scanner(System.in);
 System.out.println("Digite seu salário atual: ");
 Double Salario = input.nextDouble();
 Double NovoSalario = Salario * 1.15 ;
 NovoSalario = Math.round (NovoSalario);
 System.out.println("Seu novo salário será"+ NovoSalario);

}
}

[ERRO]: incompatible types: long cannot be converted to Double

o NovoSalario já foi criado como double, por que quando tento truncar ele diz isso?

Você não declarou o NovoSalario como double, você declarou como Double.

  • double, com letra minúscula, é um tipo primitivo de de 64 bits
  • Já o Double, com letra maiúscula, é uma classe que encapsula um valor do tipo double e fornece alguns métodos para conversões.

Você não está tentando truncar, você está tentando arredondar.
Truncar significa descartar toda a parte decimal, por exemplo 1.8 truncado fica 1 e arredondado fica 2.

O método Math.round retorna um valor do tipo long e você não pode atribuir um long para uma variável que foi declarada como Double.

Se mudar suas variáveis de Double para double, vai funcionar.

Dica: Procure seguir as convenções de código, nomes de variáveis deveriam ser em letra minúscula seguindo o formato camelCase.

2 curtidas