Estive procurando, algo do tipo para tratar valores financeiro e encontro este link
http://www.if.ufrgs.br/~betz/jaulas/aula2.htm
Qual tipo o guj recomendaria para fazer o tratamento? Currency, double ou long?
Agradeço respostas :mrgreen:
Estive procurando, algo do tipo para tratar valores financeiro e encontro este link
http://www.if.ufrgs.br/~betz/jaulas/aula2.htm
Qual tipo o guj recomendaria para fazer o tratamento? Currency, double ou long?
Agradeço respostas :mrgreen:
Dependendo do tipo de contas a fazer, calcularia tudo em centavos e guardaria em um valor “long”. Tudo depende
Pra vc nao ter dor de cabeca, use BigDecimal.
Senao implemente uma gambiarra pra resolver o problema da aproximacao.
[quote=kina]O Guj eu não sei…
mas eu usario BigDecimal[/quote]
BigDecimal seria flutuante, certo?
No artigo que tinha passado no post anteior o autor condena a utilização do double porque, e não terei escolha, pois preciso usar o Math.pow() para os calculos.
Entendo que cada caso é um caso, é que quando fui fazer o teste do método, aí fiquei nesta dúvida.
Segue o código abaixo:
/**
*
* Calculos de juros em geral
*
* @author Fábio Rodrigues Ribeiro
* @version 0.3
* @since JDK 1.5
*
*/
public class Financas {
/**
* Cálculo de juros simples
*
* @param i
* Taxa ao mês
* @param n
* Periodo em dias
* @param PV
* Valor Principal
* @return Juros
*/
public double evJurosSimples(double i, double n, Double PV) {
return (PV * (Math.pow((1 + (i / 100)), (n / 30)) - 1));
}
//continua
}
A classe existe mais métodos, que todos quase a mesma estrutura
Enquanto o teste está na seguinte forma
import junit.framework.TestCase;
public class TestarFinancas extends TestCase {
public void testFinancas() {
Financas f = new Financas();
assertEquals(2730.15, f.evJurosSimples(4.5, 45, 40000));
}
}
Pois o valor bate, porém o junit acusa.
Bem , se for para um trabalho da universidade pode utilizar double mesmo mas se for em sistemas pequenos tipo lojas , padaria recomendo utilizar float mas se for para valer ( sistemas bancarios , operadoras de cartao ) utilize o BigDecimal ( ja que a precisao e limitada pela quantidade de memoria da maquina )
Eu usaria long e calcularia tudo com base nos centavos. Fica mais fácil usar usar operadores artiméticos.
Como no artigo, dá pra confiar no double?
Se fizer tudo na base do centavo, ou seja, no long teria que converter toda a vez que se recupera, e guardar em um BD? :roll:
Estou de olho no BigDecimal :shock: , que funcionalidade ele tem? como o java.lang.Math
O objetivo é fazer um sistema contabil.
O que diria a entrada para o método ser double e a saída ser BigDecimal?
É uma furada?
Até.