Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal.
Estou desenvolvendo a geração de um boleto BB
No código onde recebo as variáveis tenho:
$oBoleto->setValorBoleto(number_format($VALOR, 2, ',', '.'));
Visualmente no boleto gera corretamente.
Porém o '.' ponto final está sendo levado para a numeração do cód barras
Exemplo: 3.500,00
(...) 3 7971000**3.50000**
Agradeço a ajuda!!!Olá Felipe. Obrigado pela atenção.
Compreendi sua instrução... mas o problema que tirando o ponto, na impressão do boleto, não fica a formatação normal.... 3.500,00
Colocando o ponto, na numeração do boleto, ele leva o ponto junto.... 3.50000
E pelo que estou observando...o boleto é gerado errado!
Use 2 variaveis, ou no local exato onde é usado as variáveis você faz a formatação.
Eu acredito que você deva ter um local ai no seu sistema que EXIBE o VALOR como ele tem que ser R$ 3.500,00
Certo?
E outro local ai no seu código onde você apresenta o VALOR como CÓDIGO DE BARRA onde tem que ficar 350000
Certo?
Na hora que você vai exibir os valores você usa o NUMBER_FORMAT para exibir.
ECHO number_format($VALOR, 2, ',', '.') <-- aqui 3.500,00 no VALOR do BOLETO
ECHO number_format($VALOR, 0, ',', '') <-- aqui 350000 no CÓDIGO do BOLETO.
É uma questão de usabilidade, você está usando a esse comando $oBoleto->setValorBoleto(number_format($VALOR, 2, ',', '.')); que atribui o valor para setValorBoleto e provavelmente você está usando essa variável setValorBoleto em ambos os lugares.
Entenda o seu código, porque se você não entender não existe solução aplicavel para o seu problema.
Pois para fazer o que você precisa existem muitos meios, como utilizar até a função str_replace();
Espero ter ajudado
Att.
***Felipe Guedes Coutinho***
PToledo
É bem simples.
Você formata a sua variável $VALOR para tipo moeda BRL (Brasil) com o comando number_format($VALOR, 2, ',', '.')
Então se o conteudo da sua variável $VALOR = 3500 você usando o comando
NUMBER_FORMAT(variavel, 2, ',', '.')
o resultado será 3.500,00
Recomendo você a usar o mesmo comando, porem no lugar do último parametro que é o . (ponto). você deixar vazio, apenas colocando
Assim:
NUMBER_FORMAT($VALOR, 2, ',', '')
NUMBER_FORMAT($VALOR, 2, ',', '')
O resultado será 3500,00
Agora se você não quiser a virgula basta no lugar do 2 você deixar 0
Assim:
NUMBER_FORMAT($VALOR, 0, ',', '')
E o resultado será 350000
Espero ter ajudado
Att.
Felipe Guedes Coutinho