Formato número como moeda
estou (a aprender) a usar o PHP para seleccionar os dados da coluna do MySQL numa matriz usando isto, {[[0]} e ele produz $1751, 60000 ou $10.00230 ou $7.23000, o que é óptimo.
No entanto, gostaria de remover os zeros finais, mas ainda assim ser capaz de ter um mínimo de duas casas decimais
$1,751.60000 = $1,751.60
$10.00230 = $10.0023
$7.23000 = $7.23
li uma série de artigos semelhantes sobre o número da conversão monetária, mas nenhum não parece resolver o meu problema, pois removem todos os zeros.
2 answers
MYSQL:
FORMAT('price', 2 )
esta é a função mysql. Ele leva o primeiro parâmetro como valor & segundo parâmetro é o número de casas decimais.
Sintaxe:
FORMAT( value, Decimal );
Exemplo:
FORMAT('1751.60000', 2 ) => 1751.60 // Output
FORMAT('1751.60000', 3 ) => 1751.600 // Output
PHP:
Em PHP temos a função number_ format (). Isto funciona como o MYSQL.
Sintaxe:
number_format( value, Decimal );
Exemplo:
number_format('1751.60000', 2 ) => 1751.60 // Output
number_format('1751.60000', 3 ) => 1751.600 // Output
A melhor maneira é implementar no MYSQL.
Nota: ambos função arredondar os valores.
Vou postar este código em PHP já que é mais fácil para mim.
$price = $row['price']; // the original price
if (number_format($price, 2) == $price) {
echo '$'.number_format($price, 2);
} else {
echo '$'.rtrim(number_format($price, 5),'0');
}
rtrim
irá remover qualquer carácter de perseguição indicado. Neste caso, remova os zeros que seguem.
Nota: só coloquei este código number_format($price, 5)
por causa da amostra da pergunta. Se você deseja manter todo o número decimal menos seguir zeros, basta usar $price
.