Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

thiago_php

completar com zero esquerda

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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+

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?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);

 

0840

1800

 

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:

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

 

## EDIT ##

 

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)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.