Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, boa tarde!
Estou com uma duvida, que pelo o que pesquisei, é bastante discutida nas comunidades de programadores e cada um fala uma coisa, por tanto vim até aqui para tentar chegar a uma conclusão.
Gostaria de gravar valores financeiros no BD de alguma forma que não traga problemas futuros, por causa de possiveis arredondamentos automaticos.
Quero saber qual o melhor mecanismo para gravar no campo de valores financeiros, valores com decimais e dizimas, exe: 0.2308, 128.997, 1.28989 ..etc independentemente da quantidade de numeros no dizimas, eu preciso saber a quantidade exata.
Obrigado, no aguardo
Valores financeiros que dizer dinheiro , a menor divisão de dinheiro é o centavo , logo até a segunda casa decimal.
Em alguns casos como venda de combustível a lei permite usar o milésimo mas não é preço e sim um multiplicador , no final se paga até o centavo.
Você deve ver com o usuário do sistema ou na legislação como tratar , restos , residuos etc.
olá pessoal, bom, primeiramente obrigado pela resposta :)
O sistema que estou criando tem uma divisão de lucros monetários, e em alguns casos essas divisão de lucros é bem pequena, mas mesmo assim eu preciso contabiliza-la, vou tentar explicar da maneira mais rapida.
Exemplificando: Em uma determinada ação financeira do script gera um valor total de $1,30 o script busca 10% desse valor $0,13 e depois esse valor é distribuído para varios campos, sendo que cada campo tem sua própria % sobre esse pequeno valor a buscar.
campo1
0,369000000
%
$0,000479700000000000
campo2
1,845000000
%
$0,002398500000000000
campo3
6,150000000
%
$0,007995000000000000
campo4
12,669000000
%
$0,016469700000000000
campo5
6,519000000
%
$0,008474700000000000
campo6
61,500000000
%
$0,079950000000000000
campo7
4,428000000
%
$0,005756400000000000
campo8
6,519000000
%
$0,008474700000000000
Esse foi só um exemplo de como deve funcionar.
No MYSQL quais TIPO de campos seria mais adequado para utilizar e com quais tamanho? (DECIMAL, double ou float)
Primeiro puramente de forma matemática definindo: dizima periodica é um numero infinito gerado por uma fração, portanto você nunca conseguirá armazenar ela exata na forma decimal, você pode ocupar o espaço inteiro do seu HD armazenando ela e não vai ser suficiente pois é infinita. você pode armazenar ela completa na forma fracionária e quando precisar usar extrai da fração, no resultado será arredondado.
Quanto ao resto.
O sistema financeiro prevê apenas 2 dígitos decimais, postos de gasolina por exemplo usam 3 digitos, mas na pratica o 2,899 é 2,90 aquilo é só marketing.
Até em engenharia espacial chega um momento que as casas decimais se tornam desprezíveis e se arredonda.
Uma vez que o sistema monetário prevê 2 digitos decimais, não vejo problema nenhum em ele registrar apenas 2 decimais.
Se seu produto é calculado em mais decimais como no exemplo do posto utilize 3 casas, no final vai acabar virando 2. Utilize a quantidade decimal que seu produto demanda.