Ir para conteúdo
Fórum Script Brasil
  • 0

Double, Decimal Ou Float ?


Beraldo

Pergunta

Estou catalogando os produtos do meu site e preciso colocar os preços dos produtos. Já tentei usar DOUBLE(3,2). FLOAT(3,2), DECIMAL(3,2) e simplesmente DOUBLE; mas todos dão erro ao adicionar valores como '29,90'. Estou fazendo algo de errado?

Se alguém puder me explicar quando e como usar cada um desses três tipos de campo para números, agradeço muito! =)

E outra coisa: um amigo meu me disse de um outro tipo de campo, o NVARCHAR. Qual é a diferença dele para um VARCHAR? Qual é a vantagem de usar o NVARCHAR no lugar do VARCHAR?

Valeu

Abraços

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

não sei bem a diferenca entre double e float, mas sei que decimal suporta um grande numero de casas decimais (por isso o nome). aconselho você a usar double, porque quando eu usava float no sql, tinha uns problemas de arredondamento.

você não consegue mesmo inserir valores '29,90' via INSERT, o certo seria '29.90' (e sem '), porque virgula serve pra separar campos.

tipo assim, em campo texto você pode por 29,90 do jeito que você fez normal, pois vai vir entre ''. agora em campo numero, você tem que por sem separador de milhar e com ponto como separador de casa decimal:

Insert Into Tabela(Texto1, Texto2, Double1, Double2, Texto3) Values('a','29,90',29.90,1000.25,'xxx')

Link para o comentário
Compartilhar em outros sites

  • 0

Mas quando eu expouser na tela o preço de um produto, ele será exibido com um ponto para separar os centavos, e não com vírgula. Como faço para solucionar esse problema? Se eu usar um explode(".", $preço) dá certo?

Link para o comentário
Compartilhar em outros sites

  • 0

Beraldo,

Os tipos NUMERIC e DECIMAL Estão obsoletos nas versões 5.x en diante.

Para tipo flutuante use double.

O MySQL usa ponto para casa decimal e não vírgula.

Você pode usar a função replace direto em sua instrução sql. Assim:

select replace(valor,'.',',') from preço

O Mysql converterá de numerico para string automaticaamente, mas não poderá fazer cálculos com ela.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...