Usando DECIMAL(4,1)
, decidi representar a coluna PERCENTUAL_COMISSAO
com três números inteiros e um decimal: até 999,9 positivo ou negativo, pois o limite da porcentagem é 100,0%. Fiz de uma maneira boa?
Usando DECIMAL(4,1)
, decidi representar a coluna PERCENTUAL_COMISSAO
com três números inteiros e um decimal: até 999,9 positivo ou negativo, pois o limite da porcentagem é 100,0%. Fiz de uma maneira boa?
A opção em si é razoável, durante o treinamento só são inseridos porcentagens inteiras, porém tudo depende da origem dos dados, se o sistema/software que está gerando esse dado valida o campo com mais casas decimais, já seria um problema.
Imagine que o campo aceite A porcentagem de comissão dessa forma: 17,93. O DECIMAL(4,1) seria um problema, o primeiro parâmetro (4) define o número máximo de dígitos que podem ser armazenados, incluindo dígitos antes e depois da vírgula decimal, enquanto o segundo parâmetro (1) define o número de dígitos após a vírgula decimal.
Nesse caso, o valor 17,93 seria arredondado para o formato (4,1) dessa forma: 17,9.
Para conversão de tipos, o MySQL utiliza o modo de arredondamento padrão (e pela maioria das linguagens de programação) "round half up", que arredonda um número para o número mais próximo, com desempate para cima em caso de empate. Ou seja,** 17,93** precisa ser arredondado para apenas 1 casa decimal, como o número 3 está mais perto do 0 do que do 10, o valor é arredondado para 9.
Outro exemplo para ficar mais claro é o valor 10.456 para o DECIMAL(4,1), o valor armazenado será 10.5 (10.456 > 10.46 > 10.50 > 10.5)