Ir para conteúdo

POWERED BY:

Arquivado

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

Gangrel_SP

*PROBLEMA* - Trocar Virgula por Ponto - Formatar preço!

Recommended Posts

Boa tarde pessoal... estou engatinhando no PHP, basicamente começando com scripts prontos e deixando-os com a minha cara... estou com um problemao, que é trocar uma virgula por ponto em um script.
No site o valor aparece 12,995 e eu quero 12.995 , nao sei se estou mexendo no lugar correto, veja se alguem pode me dar uma luz :

 

if( isset( $_POST['_price'] ) ) {
$_POST['_price'] = str_replace(array(',', ' '), array('', ''), strip_tags($_POST['_price']) );
}

Já tentei trocar a virgula por ponto mas nao deu certo... alguem pode me dar uma luz ?

Obrigado,

Felipe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Leia o manual sempre:

$teste = '12,995';
$teste_2 = str_replace(',', '.', $teste);
echo $teste_2;

Compartilhar este post


Link para o post
Compartilhar em outros sites


echo str_replace(array('.',','), array('','.'), '12,50'); // 12.50

echo str_replace(array('.',','), array('','.'), '1.250,00'); // 1250.00

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que nao funcionou... ficou assim :

 

foreach ($save_values as $key => $new) {
if( $key == '_price' ) {
$new = str_replace(array('.','.00'),array('','.'), $new );
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

De onde vem esse valor e qual o padrão (com ponto separando milhares)? Se for de um banco de dados, o correto seria (se vc tem acesso) inserir na database o valor formatado corretamente e usando um field com a tipagem correta para valores monetários.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pessoal. Consegui resolver com ajuda do Hugo.

Valeu mesmo... grande abraço,,,

 

Como é um forum, acho justo dividir a solução para ajudar ao próximo que enroscar no mesmo ponto:

 

Resposta do Hugo :

 

a função formatava o valor em moeda estrangeira
return number_format($value, 0, '.', ',');
alterei para o formato brasil
return number_format($value, 2, ',', '.');

 

Abraço aos amigos...

 

Felipe

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.