Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
entao tenho uma coluna no banco chamado valor, quando faço select e exibo com o php queria completar a casa decimal com zero a esquerda, esse campo tem o tamanho de 12.
ex:
no banco tenho esse valor que pode ser qualquer outro valor 5
quando for exibir quero exibir assim 000000000005
alguem tem uma ideia como posso fazer isso ?
valeu
A solução do leo_SJCampos é boa, mas se voc quiser fazer isso direto no banco basta marca o campo da tabela como "ZEROFILL".
At+
entao tenho um outro valor que tenho que formatar
Ex:
Se retornar 8,4 tenho que formatar para 0840
se for 18 formatar como 1800
poderia usar esse mesma funcao acima
$variavel = str_pad(preg_replace('/[^0-9]*/', '', $var), 4, '0', STR_PAD_LEFT);
entao nesse caso ele esta colocando o 0 a esquerda só, ele tem que colocar a direita tb
quando for 8,4 ele completa com com um zero a esquerda e um zero a direita ficando assim 0840
se for 18 por exemplo ele completa com dois zero a direta 1800
valeu
<?php
echo str_pad(number_format('8.4',2, '',''), 4, '0', STR_PAD_LEFT).'<br />'.
str_pad(number_format('18', 2, '',''), 4, '0', STR_PAD_LEFT);
08401800
Lembrando que estamos trabalhando com padrão internacional, onde o dígito decimal é o ponto, e não a vírgula. Ao menos que você mude para o padrão pt-br :thumbsup:
tive um problema se eu passo com . funciona mas quando passo com , nao aparece o esperado
str_pad(number_format('8.4',2,'',''), 4, '0', STR_PAD_LEFT) = 0840
str_pad(number_format('8,4',2,'',''), 4, '0', STR_PAD_LEFT) = 0800
eu retorno do banco um valor com virgula nao com ponto.
Repetindo:
Lembrando que estamos trabalhando com padrão internacional, onde o dígito decimal é o ponto, e não a vírgula. Ao menos que você mude para o padrão pt-br :thumbsup:
Soluções:
1 - Trocar para o padrão pt-br com set locale.
2 - Trocar a variável "na mão" com str_replace(',', '.', $var);
Falopa
viajei é ponto mesmo, mas tive um problema tenho um valor que é
159,9 a saida dele ta ficando assim 15990
o correto seria 1599 nao poderia passar de 4 digito
de resto funcionou correto
estive tentando arrumar mas nao deu certo, se alguem tiver uma ideia pra ajudar....
fiz assim nao sei se é a forma mais correta mas deu ceto... <_<
Se alguem tiver sugestao de melhoria
substr(str_pad(number_format("15990",2,'',''), 4, '0', STR_PAD_LEFT), 0,4)
$variavel = str_pad($var1, 5, "0", STR_PAD_LEFT);