Em algumas vezes você pode querer limitar a quantidade de números depois do ponto decimal, ou a quantidade de zeros à esquerda de um número, ou ainda, colocar aspas internamente em uma string.
Para isso vamos usar a função da biblioteca string: string.formate( str_format , … )
Veja o exemplo abaixo comentado:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
//exemplo de uso da funcao string.formate: //determinando o número de casas apos o ponto decimal nn = 1.123456789 nn3 = string.formate("%.3f" , nn ); //para 2 casas mude 3 para 2 ou para qualquer valor válido imprima( '\n' , nn , nn3 , '\n' ); //colocando uma string entre aspas: s = "Olá mundo"; ss = string.formate( "%q" , s ); //use %q imprima( '\n' , conv_c(s) , conv_c(ss) , '\n' ); //conv_c para imprimir com acento; o \n é para pular linha //colocando zeros a esquerda: n , nn = 22 , 100 ; //n = 22 e nn = 100 isto se chama multipla atribuicao nf = string.formate("%05d / %05d", n , nn); //\n é nova linha imprima( '\n' , nf , '\n' ); //formatando hora: t = sis.data('*t'); //o *t forca o retorno de uma tabela h = string.formate("Horário: \n\n %02d:%02d:%02d\n" , t.hora,t.minuto,t.segundo ); imprima( conv_c(h) ); //funcao conv_c faz imprimir acentos no cmd. //agora vou usar um laco de repeticao para imprimir de 001 até 010 imprima'Agora de 001 a 010 / precione ENTER para continuar' leia(); para i = 1 , 10 inicio imprima( string.formate("%03d" , i ) ); fim |
OBS1 – Note que os caracteres que começam em % recebem os argumentos após a vírgula na sequência certa.
Para entender: string.formate( ‘%arg_1 %arg_2 %arg_3’ , arg_1 , arg_2, arg_3 ) e assim por diante, para cada caractere de formatação deve haver um argumento na mesma ordem após a vírgula);
%s = para strings (ex. “ola” ), %d para números inteiros (ex. 100 ) , %f para números com ponto decimais ( ex. 1.55);
%q = coloca uma string entre aspas ( ex. o mesmo que str = “\”Olá Mundo\”” );
OBS2 – Como faço para imprimir um %? Simples, use %% e somente o segundo % sairá na string.
Qualquer dúvida, poste nos comentários, ou no fórum. Até logo!