Primeiro post sobre desenvolvimento do ano de 2011!
Surgiu a seguinte questão de um cliente: Na tabela produtos o campo ‘valor’ estava como float. Porém isso causava um grande problema. Quando o cliente ia realizar a compra através do PagSeguro, o valor 6.4 (Seis reais e quarenta centavos) ia através do pag seguro sem virgula (64) e então o pagSeguro convertia automaticamente para a seguinte forma 0,64! Ou seja, um produto que custava 6 reais passou a custar 64 centavos!
Tenso né?! Pois é.
Nota-se que os produtos que possuem o valor: 5.44 o pagSeguro convertia corretamente, ou seja, ele tirava a virgula, ficando 544, e depois incluía a virgula após as 2 primeiras casas, ficand 5,44. Desta forma podemos identificar que os produtos que tinham apenas 1 casa decimal depois da virgula eram os que causavam o problema.
Vamos à solução!
Estudando os tipos de campo, achamos que é perfeitamente viável utilizar o tipo DECIMAL. Assim, montamos o seguinte comando SQL:
ALTER TABLE produtos MODIFY valor DECIMAL(5,2)
Explicando o código: Altere a tabela produtos, modificando o campo valor para o tipo decimal, onde este decimal tem no máximo 5 dígitos (99.999), neste caso temos produtos de no máximo 100 mil reais. E que o valor decimal sempre fique com 2 casas decimais após a vírgula.
Boa Semana!

Comentários