Tipo de campo para "preço"

8 respostas
alandiniz

Olá amigos do fórum, estou fazendo um sisteminha agora nas férias para não ficar parado, dessa vez quero fazer com calma e da maneira correta…

Já de cara surgiu a primeira dúvida… pesquisei em vários lugares e cada um ensina de uma maneira diferente…

Eu tenho uma entidade chamada “servico” Serviço, onde será cadastrado o serviço e o preço dele… ex.:
descricao: cortar grama
preco: 12,51

o serviço terá no máximo 999,99
porém já adiantando a pergunta, eu terei uma entidade chamada “empresa” e nela terá o “valor_em_caixa” que poderá ter por exemplo: 1.251,32

Minha pergunta é:

  • No java qual tipo usar? Double, Float…
  • No banco (mysql) qual usar? Decimal, Decimal(), Double, Float…

Obrigado.

8 Respostas

mauricioadl

banco -> decimal
java -> float é suficiente

D

mauricioadl:
banco -> decimal
java -> float é suficiente

float é insuficiente, você não esta levando em consideração os centavos.
@alandiniz caso você for fazer calculos baseado nesse valor, vai de BigDecimal, senão o Double é o suficiente.

alandiniz

Bom intão no banco fica Decimal
e no java BigDecimal

hehe, eh meio complicado isso pq cada um pensa de uma forma… por isso criei o tópico…

eu achei em muitos lugares, cada um falando uma coisa, achei até gente falando pra usa INT ¬¬

kapa01

use double que é o padrão para formatos decimais em java.

D

alandiniz:
Bom intão no banco fica Decimal
e no java BigDecimal

hehe, eh meio complicado isso pq cada um pensa de uma forma… por isso criei o tópico…

eu achei em muitos lugares, cada um falando uma coisa, achei até gente falando pra usa INT ¬¬

Eu já vi disso também de usar int para valores decimais, a explicação que eu tive foi que seria criado dois campos, um com o valor inteiro e outro para o decimal. Ex: 12,22 seriam separados o 12 e 22, cada um em um campo, vai entender né.

mauricioadl

davisnog:
mauricioadl:
banco -> decimal
java -> float é suficiente

float é insuficiente, você não esta levando em consideração os centavos.
@alandiniz caso você for fazer calculos baseado nesse valor, vai de BigDecimal, senão o Double é o suficiente.

float eh grande o suficiente pra colocar bilhoes de moeda e centavos de boa, o que vai mudar é a formatacao que voce ira usar na view nao o armazenamento.

D

correto @mauricioadl, eu confundi float com long.

Giulliano

eu sempre uso BigDecimal…pra ser mais sincero, eu tenho algumas classes Dinheiro, Cheque, cartão, etc…depende do seus sistema…mas dentro dessas classes eu uso BigDecimal que me permite diversos métodos para se trabalhar com os valores.

Criado 14 de dezembro de 2011
Ultima resposta 14 de dez. de 2011
Respostas 8
Participantes 5