[VAZA] 0 Denunciar post Postado Janeiro 12, 2005 aew pessoal..tem alguma função no PHP para formatar moeda?no mysql o campo esta como doubleFalow... Compartilhar este post Link para o post Compartilhar em outros sites
efraim 1 Denunciar post Postado Janeiro 12, 2005 você pode usar o number_format number_format($variavel_com_numero, int casa decimais, separador decimal , separador de milhares); ex: PHP $num = 100000.50; // repare que o padrão é no formato americano echo 'R$' . number_format($num, 2); // retorna R$100,000.50 // nosso formato echo 'R$' . number_format($num, 2, ',', '.'); // retorna R$100.000,50 //formato americano echo 'R$' . number_format($num, 2, '.', ','); // retorna R$100,000.50 etc Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Gonçalves 0 Denunciar post Postado Março 13, 2013 A função number_format() é boa. Mas, no sistema em q estava desenvolvendo, percebi q caso o usuário "fuja" dos padrões (999.999,99 ou 9999.99 e variantes), a função retorna um erro ou "deixa passar" o valor q o usuário inseriu. Para resolver isso, criei essa função para validar: function formatoReal($valor) { $valor = (string)$valor; $regra = "/^[0-9]{1,3}([.]([0-9]{3}))*[,]([.]{0})[0-9]{0,2}$/"; if(preg_match($regra,$valor)) { return true; } else { return false; } } Retorna TRUE se seguir o padrão (brasileiro) e falso caso contrário. echo formatoReal('9'); //false echo formatoReal('99'); //false echo formatoReal('999'); //false echo formatoReal('9,99'); //true echo formatoReal('99,99'); //true echo formatoReal('99,999'); //false echo formatoReal('9.999'); //false echo formatoReal('9999,99'); //false echo formatoReal('99.,.99'); //false echo formatoReal('99,.99'); //false echo formatoReal('999.999.999,99'); //true Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Março 13, 2013 Você deve utilizar um "mascaramento" em jquery para moeda, em seu input, e quando receber os dados tratá-los, eu fiz da seguinte forma: function moeda($get_valor) { $source = array('.', ','); $replace = array('', '.'); $valor = str_replace($source, $replace, $get_valor); //remove os pontos e substitui a virgula pelo ponto return $valor; //retorna o valor formatado para gravar no banco } Compartilhar este post Link para o post Compartilhar em outros sites
Hamanom007 0 Denunciar post Postado Abril 19, 2015 O conteúdo dessa pagina me ajudo, Obrigado a todos. Mas quem estiver procurando fazer uma formatação simples de por exemplo 24,90Aqui esta: $valor 24.9; echo 'R$: '.number_format($valor,2); Compartilhar este post Link para o post Compartilhar em outros sites
mxtsistemas 0 Denunciar post Postado Fevereiro 12, 2017 Como seria em um input? Compartilhar este post Link para o post Compartilhar em outros sites
ewersonsv 154 Denunciar post Postado Fevereiro 13, 2017 <?php /* Exemplo: No banco de dados o valor é 10.00 a primeira viriavel vai recebe e a segunda vai transforma em 10,00 e no site vai por R$<?php echo $valor; ?> --------------------------------------------------- Quando for envia no "input" envie assim 10.00 agora for acima de 2 digito reais: 100.00 = R$100,00 / 1000.00 = R$1.000,00 / assim por diante. --------------------------------------------------- $valor = 10.00; $valor = number_format($valor, 2, ',', '.'); --------------------------------------------------- R$<?php echo $valor; ?> | Vai imprimir: R$10,00 */ $valor = $linha['valor']; //Recebe o valor vindo do bancos de dados $valor = number_format($valor, 2, ',', '.'); // formata para modo: R$ (Real Brasileiro) Compartilhar este post Link para o post Compartilhar em outros sites
Mateus Silva 64 Denunciar post Postado Fevereiro 14, 2017 Use o maskedinput ou maskmoney do jQuery e faça uma validação como o @Alaerte Gabriel disse ai em cima que não vai ter erro, vai sempre ter um float, aí é só tratar com o number_format Compartilhar este post Link para o post Compartilhar em outros sites