Como gravar numero no formato moeda para o padrão com php
5 respostasResolvido
php
J
jodenni
Bom dia galera.
Eu tenho a seguinte duvida e vou explicar
Possuo um campo input text que recebe um valor digitado pelo usuário em formato moeda
1.266,33
O que acontece é o seguinte preciso que quando entrar na variável php para uma possível gravação no banco de dados entre o valor sem formato por exemplo 1266.33 e assim por diante.
Por padrão um input text vai passar o valor para o PHP nesse formato 126633.
D
danieldejesus
Independente da formatação ou máscara que você estiver usando no input text.
J
jodenni
Eu faço um echo quando envio o valor e no php ele exibe do mesmo jeito que esta na mascara
Por exemplo
no campo digito e vai preenchendo as virgulas e ponto por causa da função script criada
1.266,33 -> no campo só digito os números.
na hora de eu clicar no botão submit envia com a mascara para o php.
o que preciso é tratar no php exemplo
se na variavel o valor for
$valor = 1.266,33;
echo $valor; -> a saida ser: 1266.33
J
jodenni1 like
Consegui resolver deste jeito.
primeiro tiro o ponto e depois a virgula que fica transformo em ponto.
`$valorAplicado = 1.266,33;`$valor = str_replace("." , "" , $valorAplicado ); // Primeiro tira os pontos`$valorAplicado2 = str_replace(',','.',$valor);`echo "$valorAplicado2";
Solucao aceita
rgtobr1 like
– ENTRADA –
Considere que você tem no input o valor: 1.234,56 e deseja que a saída seja 1234.56. Você tem que saber qual é o locale do usuário, ou seja, em que idioma ele digitou o número. Então você pode fazer isso:
Sempre que for guardar um número que é uma moeda em uma tabela, procure sempre guardar também mais 2 informações:
locale do usuário (ex: pt_BR) e também
formato da moeda (ex: BRL). Essa informação é útil para que o NumberFormatter escreva o número desejado no formato correto e no idioma do usuário, exemplo de saída: R$ 10,01.
Segue um exemplo de código mais completo:
<?phpuseNumberFormatter;/** * Currency helper. * @author Rodrigo Guariento * @since Ago 19, 2019 */classCurrencyHelper{/** * Show float number as currency with symbol. * @param float $number * @param string $currency * @param string $lang * @return string */publicfunctionshowCurrency(float$number=10.01,string$currency='BRL',string$lang='pt_BR'):string{$formatter=newNumberFormatter($lang,NumberFormatter::CURRENCY);return$formatter->formatCurrency($number,$currency);}}// example$currencyHelper=newCurrencyHelper();echo'10.01 em português na moeda reais: <br/>';echo$currencyHelper->showCurrency(10.01,'pt_BR','BRL').'<br/>';echo'10.01 em inglês na moeda reais: <br/>';echo$currencyHelper->showCurrency(10.01,'en_US','BRL').'<br/>';echo'10.01 em inglês EUA na moeda dólar: <br/>';echo$currencyHelper->showCurrency(10.01,'en_US','USD').'<br/>';