Transformando strings númericas

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Transformando strings númericas

Mensagem por Gonçalves em Dom 15 Jan 2012, 12:07

Supondo que eu tenha um variável com valor '2000000', como, ao passá-la para string, transformá-la em '2.000.000'? Até.

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Transformando strings númericas

Mensagem por Igor KinGamer em Dom 15 Jan 2012, 13:53

Boa pergunta... (isso não foi sarcástico não)

Existe a função string_insert(substr,str,index), que retorna uma cópia (retorna uma cópia, não modifica a string dada) da string str com a string substr inserida na posição index (inserir na posição 1 (e não 0) significa inserir no início da string). A questão aqui é como descobrir onde inserir.
Como está bem claro, você tem que dividir a string de três em três caracteres, só que de trás para frente.

Para isso, você pode descobrir a quantidade de caracteres que deve ser pulada no início (que será 1, 2 ou 3) para inserir o primeiro ponto. A partir daí, é só ir somando 3 posições (na prática, 4, porque após inserir um ponto, a posição que seria 3 a frente torna-se 4 a frente) até terminar a string.
Você vai precisar da função string_length() para saber o comprimento da string, e usar mod 3 (módulo 3) para saber quantos caracteres devem ser pulados no início da string.

Vou deixar você tentar montar os códigos. Se você não conseguir, eu ajudo.

[edit]

Agora que eu percebi que tem um jeito mais simples. É só você pegar o comprimento da string mais 1 (se não somar um, os pontos ficarão uma posição antes do correto), então subtrair 3 e inserir o ponto, e repetir isso enquanto o valor for maior que 0.

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Transformando strings númericas

Mensagem por Gonçalves em Dom 15 Jan 2012, 16:18

Deve somar um porquê começa em 1 e não 0?

Não tinha visto a função string_length. Tentarei dessa forma, caso não consiga, tentarei usá-la da seguinte forma: checando a string_length, se maior que 3, crio uma var com valor 1, se maior 6 - var = 2, esse será o número de repeats que o code dará, inserindo ponto na string_length-3 (e no final do repeat var -= 3), que assim vai inserindo ponto de de 3 em casas de acordo com o número de caracteres. Não poderei testar nesses dias pois não estarei em casa, tentarei quando puder. Obrigado.

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Transformando strings númericas

Mensagem por Igor KinGamer em Dom 15 Jan 2012, 22:28

Gonçalves escreveu:Deve somar um porquê começa em 1 e não 0?
É, exatamente. Inserir algo em string_length() significa inserir uma casa antes do final, e o final é o que você quer.

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Transformando strings númericas

Mensagem por Conteúdo patrocinado Hoje à(s) 14:34


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum