Gostaria de saber como posso gerar um número com 2 casas decimais, sem arredondar o número original.
Por exemplo:
2229,999 -> 2229,99
Eu já tentei:
FORMAT(2229.999, 2)
CONVERT(2229.999, DECIMAL(4,2))
mysql
formatting
decimal
Tenza
fonte
fonte
DECIMAL(6,2))
. 6- Precisão (número de dígitos totais) e 2 é o número de dígitos após o decimal?Respostas:
Você deseja usar o
TRUNCATE
comandohttps://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html#function_truncate
fonte
Ao formatar o número para 2 casas decimais, você tem duas opções
TRUNCATE
eROUND
. Você está procurandoTRUNCATE
função.Exemplos:
Sem arredondamento:
docs: http://www.w3resource.com/mysql/mathematical-functions/mysql-truncate-function.php
Com arredondamento:
docs: http://www.w3resource.com/mysql/mathematical-functions/mysql-round-function.php
fonte
truncate
para formatar números quando desejar números truncados. ela deixou bem claro na pergunta que era isso que ela queria fazer. existem muitas maneiras de arredondar (piso, teto, longe de zero, na direção de zero, meio para cima, meio para baixo, meio plano). eles são apropriados em diferentes contextos.ROUND
função.Que tal
CAST(2229.999 AS DECIMAL(6,2))
obter um decimal com 2 casas decimaisfonte
convert(2229.999 as decimal(4,2))
.convert(2229.999, decimal(4,2))
.Basta usar a amostra format (number, qtyDecimals): resultado do formato (1000, 2) 1000,00
fonte
Isto é como eu usei isso é como um exemplo:
fonte
Mostrar como decimal Selecione se nulo (formato (100,00, 1, 'en_US'), 0) 100,0
Mostrar como porcentagem Selecione concat (ifnull (format (100.00, 0, 'en_US'), 0), '%') 100%
fonte