RESOLVIDO - Formatar número, colocando zeros depois da vírgula

[size=12pt][font=arial]Olá, como faço para formatar esse número de: “R$50.328” … para “R$50.328,00” ?

Já usei number_format de todas as formas que eu sabia e não consegui…

Obrigada desde já![/font][/size]

Camila coloque aqui como tu tentou…

Tentei assim Willian:

  • $valor_final = str_pad($valor_final, 5, ‘0’);

  • $valor_final = number_format($valor_final,2,",",".");

  • $valor_final = number_format($valor_final,2,’,’,’.’);

  • $valor_final = number_format($valor_final,2,","," ");

-$valor_final = number_format($valor_final,2);

Tentei dessas formas!

Ok, ta errado mesmo Camila. essa macro do SC, ela já faz o formato na própria variável ou seja não tem retorno

ficaria assim

$valor_meu = 50328; sc_format_num($valor_meu, '.', ',', 2, 'S', '1', 'R$'); echo $valor_meu;

O resultado do echo deveria ser R$ 50.328,00

Tenta isso Camila:

$valor_final = number_format($valor_final, 2, ‘,’, ‘.’);

Guria,

dá uma olhada nessa macro:
sc_format_num

:slight_smile: :slight_smile: :slight_smile:
nem vi que era a função do PHP…
kkkkk

Essa macro funciona em aplicação blank ?

seguindo o seu valor sem mudar ajustando o do willian

$valor_meu = 50.328;
$valor_meu = str_replace(".","",$valor_meu);
sc_format_num($valor_meu, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘R$’);
echo $valor_meu;

Sim funciona

Vou testar povo meu.

Se não der certo com a macro como o Willian te mostrou tenta como falei:

$valor_final = number_format($valor_final, 2, ‘,’, ‘.’);

Já tentei assim Thyago, o number_format não insere zero no final.

A diferença é que o meu está com aspas simples. Veja aí se não é isso

Não deu certo de nenhum desses jeitos, estou usando isso numa blank, dentro um código de pdf.

Camila,

dá certo sim, pois eu utilizo.

Veja o que diz o help do SC, referente a macro:

Ex. 3: Formatando um valor com 4 casas decimais e preenchendo com zeros.
sc_format_num({meu_valor}, ‘.’, ‘,’, 4, ‘S’, ‘1’, ‘’);
Valor de entrada = 0012345678.9
Valor de saída = 12.345.678,9000

Camila acabei de testar isso no blank e foi normal

$valor_meu = 50.328;
$valor_meu = str_replace(".","",$valor_meu);
sc_format_num($valor_meu, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘R$’);
echo $valor_meu;

resultado : R$ 50.328,00

Opa, veja se lhe ajuda!
Funciona em uma aplicação BLANK e esse evento só funciona no evento onExecute na aplicação blank.

sc_format_num({Meu_Campo}, “Simb_Grp”, “Simb_Dec”, “Qtde_Dec”, “Enche_Zeros”, “Lado_Neg”, “Simb_Monetário”, “Lado_Simb_Monetario”)
Esta macro tem por objetivo a formatação de valores numéricos.

Parâmetro
Descrição
Meu_Campo Variável ou campo que contena o valor a ser formatado (O retorno será na própria variável).
Simb_Grp Símbolo de agrupamento dos valores inteiros.
Simb_Dec Símbolo para o separador de decimais.
Qtde_Dec Quantidade de decimais a ser exibida.
Enche_Zeros Completa com zeros as decimais inexistentes (S = sim e N = não).
Lado_Neg Lado onde o sinal de negativo deve ser exibido (1 = esquerdo e 2 = direito).
Simb_Monetário Símbolo monetário a ser exibido.
Lado_Simb_Monetário Lado onde o símbolo monetário será exibido (1 = esquerdo e 2 = direito).
Ex. 1: Formatando um número inteiro.
sc_format_num({meu_valor}, ‘.’, ‘’, 0, ‘N’, ‘1’, ‘’);
Valor de entrada = 001234567890
Valor de saída = 1.234.567.890

Ex. 2: Formatando um valor negativo e desprezando as casas decimais.
sc_format_num({meu_valor}, ‘.’, ‘’, 0, ‘N’, ‘1’, ‘’);
Valor de entrada = -0012345678.90
Valor de saída = -12.345.678

Ex. 3: Formatando um valor com 4 casas decimais e prenchendo com zeros.
sc_format_num({meu_valor}, ‘.’, ‘,’, 4, ‘S’, ‘1’, ‘’);
Valor de entrada = 0012345678.9
Valor de saída = 12.345.678,9000

Ex. 4: Formatando um valor com 2 casas decimais, prenchendo com zeros e utilizando símbolo monetário.
sc_format_num({meu_valor}, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘R$’);
Valor de entrada = 0012345678.9
Valor de saída = R$ 12.345.678,90

Ex. 5: Formatando um valor com 2 casas decimais, prenchendo com zeros.
sc_format_num({meu_valor}, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘’);
Valor de entrada = .9
Valor de saída = 0,90

1 Curtida

Consegui resolver pessoal, tive que mudar toda a estrutura de somas dos campos, ficou mais ou menos assim:

$total = 0;

$valor_meu = $rs->fields[0];
$cvalor_meu = $valor_meu;
sc_format_num($cvalor_meu, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘’);

$valor_meu1 = $rs->fields[1];
$cvalor_meu1 = $valor_meu1;
sc_format_num($cvalor_meu1, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘’);

$total = $total + $valor_meu + $valor_meu1;
sc_format_num($total, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘’);

Ou seja, não pode usar o valor convertido para fazer os cálculos, pelo menos eu não consegui.

Obrigada gente!

É que quando você passou o valor pela macro sc_format_num ela foi convertida em string, ai tentou somar uma valor com string ai ocorre essas anomalias no PHP por ele não acusa, mas não soma porque é uma linguagem de tipagem fraca e debug arcaico, não que isso seja ruim, mas ai a responsabilidade fica em cima do programador ‘notar se não tá passando batido na hora que escreveu o código’.
https://anotacoesdohercules.wordpress.com/2013/03/05/tipagem-fracaforte-e-inferencia-de-tipo/