sábado, 13 de setembro de 2014

Projeto Euler

Depois de um longo tempo sem visitar o Projeto Euler, retomei recentemente minhas tentativas de resolver os problemas propostos.
Já tinha resolvido alguns, nessa retomada, cheguei aos primeiros 50 resolvidos.
O objetivo é dar uma "desenferrujada" na lógica.
Até hoje, já resolvi 53 problemas e ocupo a posição 60 entre os participantes do Brasil.



quarta-feira, 3 de setembro de 2014

#dicaJava - BigDecimal, cálculo de prestações

 Muitas vezes precisamos calcular uma série de valores, como os valores de uma venda parcelada, a partir de um valor total e o número de parcelas. Ocorre que esse cálculo nem sempre é preciso, muitas vezes vai ocorrer arredondamentos.

 O programa abaixo mostra isso:



Executando:



 Normalmente, quando a diferença é negativa (diminui o valor da parcela), é costumeiro aplicar a diferença nos valores iniciais, caso contrário, nos valores finais. Também, aplica-se as diferenças centavo a centavo.

 Fazendo umas alterações no programa:



Resultado:



Abraço!

#dicaJava - BigDecimal, arredondamento

 Um dos posts mais acessados é no qual tratei sobre os problemas de precisão dos tipos float e double e o uso da classe BigDecimal. http://agorandroid.blogspot.com.br/2012/04/java-valores-monetarios-float-double-e.html
 Segue um programa que uso para selecionar o tipo de arredondamento entre as diversas opções existentes na classe BigDecimal.




Abaixo o resultado da execução:



 Interessante a opção HALF_EVEN, indicada para tratar grande volume de dados, principalmente estatísticos. O arredondamento, quando o valor a ser desprezado é igual a 5, depende do valor do dígito a ser arredondado ser par ou ímpar. Se for par o comportamento é igual à opção HALF_DOWN, se ímpar igual a HALF_UP .

 Vejam o teste abaixo:



 É isso.

 Abraços!