Double, Decimal Ou Float ? - MySQL - Fórum Script Brasil
Double, Decimal Ou Float ?
Por Beraldo, May 3, 2006 em MySQL
Postado May 3, 2006
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?
Postado May 7, 2006
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')
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?
REFFER 0
Pela função explode, creio que está usando PHP...
Usa um number_format (http://php.net/number_format) para formatar do jeito que precisa para mostrar e um str_replace (http://php.net/str_replace) para substituir a virgula por ponto para inserir no banco.