Programação Prof.: Bruno Rafael de Oliveira Rodrigues.
Transcript of Programação Prof.: Bruno Rafael de Oliveira Rodrigues.
ProgramaçãoProgramaçã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.
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)
ExemplosExemplos
Erros de CálculoErros de Cálculo
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.
BigInteger e BigDecimalBigInteger e BigDecimal
Números com precisões ilimitadas. O BigDecimal é uma excelente opção para se tratar com cálculos financeiros.
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")))
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.
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
ExemploExemplo
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.