12
Programação Programação Prof.: Bruno Rafael de Oliveira Rodrigues

Programação Prof.: Bruno Rafael de Oliveira Rodrigues

Embed Size (px)

Citation preview

Page 1: Programação Prof.: Bruno Rafael de Oliveira Rodrigues

ProgramaçãoProgramação

Prof.: Bruno Rafael de Oliveira Rodrigues

Page 2: Programação Prof.: Bruno Rafael de Oliveira Rodrigues

Classe MathClasse Math Java possui constantes pré-definidas e

métodos para executar diferentes operações matemáticas, como, por exemplo, funções trigonométricas e logarítmicas. Como estes métodos são todos static, podemos utilizá-los sem a necessidade de construir um objeto da classe Math.

Page 3: Programação Prof.: Bruno Rafael de Oliveira Rodrigues

Alguns métodosAlguns métodos abs(double a) random() max(double a, double b) min(double a, double b) pow(double a, double b) round(double a) sqrt(double a)

Page 4: Programação Prof.: Bruno Rafael de Oliveira Rodrigues

ExemplosExemplos

Page 5: Programação Prof.: Bruno Rafael de Oliveira Rodrigues

Erros de CálculoErros de Cálculo

Page 6: Programação Prof.: Bruno Rafael de Oliveira Rodrigues

Nem todos os cálculos são precisos quando se tratam de números decimais.

Arredondamentos constantes podem prejudicar o programa, que vai acumulando erros.

Page 7: Programação Prof.: Bruno Rafael de Oliveira Rodrigues

BigInteger e BigDecimalBigInteger e BigDecimal

Números com precisões ilimitadas. O BigDecimal é uma excelente opção para se tratar com cálculos financeiros.

Page 8: Programação Prof.: Bruno Rafael de Oliveira Rodrigues

As operações com o BigDecimalAs operações com o BigDecimal

Use métodos como add, subtract, multiply, pow, etc

Você pode encadear métodos, por exemplo:new BigDecimal("123.4").add(new

BigDecimal("5.6").subtract(new BigDecimal("7.8")))

Page 9: Programação Prof.: Bruno Rafael de Oliveira Rodrigues

Equals considera a escala, para comparação numérica use apenas compareTo

new java.math.BigDecimal("2.0").equals(new java.math.BigDecimal("2.00"))

new java.math.BigDecimal("2.0").compareTo(new java.math.BigDecimal("2.00"))

O método setScale arredonda o valor para a quantidade de decimais desejada.

Page 10: Programação Prof.: Bruno Rafael de Oliveira Rodrigues

ArredondamentosArredondamentos

HALF_EVEN tende a distribuir de modo uniforme perdas e ganhos ao longo de várias operações HALF_UP tem mais ganhos do que perdas, então o banco pagaria mais do que recebeu

Page 11: Programação Prof.: Bruno Rafael de Oliveira Rodrigues

ExemploExemplo

Page 12: Programação Prof.: Bruno Rafael de Oliveira Rodrigues

ExercíciosExercícios

1 – Faça um programa que solicite um número ao usuário e ele compara com um número aleatório. (Use o JoptionPane) Obs. O programa deve perguntar ao usuário se ele quer sair sempre depois de uma resposta.

2 – Altere a classe a classe Professor onde calcula o salário bruto e líquido para que possa usar o Bigdecimal ao invés do double.