Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Junyor_07

[Resolvido] formatação de moeda

Recommended Posts

Olá pessual, tenho uma duvida sobre formatação de moeda, estou ussando number_format($valor, 2, ',', '.') para formatar os valores, até ai tudo certo. Gostaria de saber pq quando os valores tem casa decimal separado por virgula tipo 982,45 ele autera para 982,00 quando deveria deixar da mesma forma que esta.

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum, os valores já estavam separados por virgula antes do number_format ser executado??Porque para dar certo, os valores decimais devem ser separados por ponto e não vírgula...assim o number_format substitui o valor por vírgula...

 

$number = "1.5"; // Leia-se um e meio (ou um vírgula cinco). 
echo "R$" .number_format($number, 2, ',', '.');

deu certinho aqui...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu to trazendo esses valores do banco, não to inserindo eles, tem valor que o cliente gravo sem casa decimal desta forma 588. tem valor que ele gravo desta forma 588,2 e tem valor que ele gravo da forma corre ta com duas casas decimais 588,50. preciso formata para ficar uma visualização correta.

To fazendo assim

 

<td class="estilocelulaconteudo1"><?php echo number_format($k[2], 2, ',', '.'); ?></td>.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem, tá completamente errado então, os valores do banco não poderiam ser separados por vírgula diretamente, bem como o number_format não vai resolver esse tipo de coisa...você deveria colocar o campo do banco como decimal e aceitar apenas o formato "numero.2casas decimais" (EX: 45.69). Assim ele exibiria 45,69 na tela, ao se fazer o number_format.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é o ocorreto seria ele gravar com 2 casas decimais no banco, mas o cara que desenvolveu o sistema não fez isso. tem alguma coisa que posso fazer para exibir esses valores formatados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não tem um padrão pros valores colocados, fica complicado...

 

bem, faça replace em todas as vírgulas e coloque ponto. De preferência atualize isso no banco.

$valor=str_replace(",",".",$valor);

Mude o campo no banco de dados para decimal(10,2)... ele deve estar como varchar(algum_numero).

 

Bem...arrumando esse caso de vírgula no banco de dados, não tem porque o number_format não funcionar...

Talvez nos registros com ponto mas sem nenhum valor depois, mas mesmo eles creio que o numer_format vá exibir tipo: 42,00

 

vê aí :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não posso alterar o banco pq esta num servidor remoto não tenho acesso, só tenho acesso aos valores salvo neste banco. vou tentar desta forma que você me passou..

Compartilhar este post


Link para o post
Compartilhar em outros sites

peguei os valores que estavão vindo do banco e alterei a virgula por ponto e depois chamei a função number_format.

fico assim.

troquei virgula por ponto.

<? $valor = str_replace(",",".",$k[2]); ?>

 

formatei os valores na hora de exibir

<?php echo number_format($valor, 2, ',', '.'); ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.