Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Incluir Página
tec:Str
tec:Str

Sintaxe

 

STR( <expressão numérica 1>  [ , <expressão numérica 2> ] [ , <expressão numérica 3> ] )

 

Propósito

 

Converte um número ou o resultado de uma expressão numérica para uma cadeia de caracteres.

 

Argumentos

 

< expressão numérica 1 >

 

Define o número ou a expressão numérica que será convertida para uma cadeia de caracteres.

 

< expressão numérica 2 >

 

Define o comprimento (tamanho) da cadeia de caracteres a ser fornecida, incluindo as casas decimais, o ponto decimal e o sinal de negativo, se houver.

 

< expressão numérica 3 >

 

Define o número de casas decimais a ser fornecido na cadeia de caracteres resultante.

 

Utilização

 

Essa função é muito útil para imprimir dados numéricos concatenados com dados caracter, na conversão de dados numéricos para a constituição de chaves de índice que combinem dados numéricos e caracteres, entre outras situações.

 

Se as expressões numéricas 2 e 3 não forem especificadas, a cadeia de caracteres será fornecida de acordo com as regras relacionadas abaixo:

 

<expressão numérica 1>

Comprimento da cadeia de caracteres

Campo de arquivo de dados

Idêntico ao comprimento do campo.

Expressões ou constantes

No mínimo 10 posições e as casas decimais.

VAL()

No mínimo 3 posições.

MONTH() ou DAY()

3 posições.

YEAR()

5 posições.

RECNO()

7 posições.

 

Se a expressão numérica 2 especificar um comprimento menor que o da parte inteira da expressão numérica 1, serão fornecidos asteriscos ao invés do número.

 

Se o comprimento definido pela expressão numérica 2 não for suficiente para conter todo o valor numérico a ser convertido com os seus dígitos decimais, a cadeia de caracteres fornecida será arredondada para a quantidade máxima possível de dígitos decimais.

 

Se o número de casas decimais não for especificado, o valor a ser convertido será arredondado para um número inteiro. Se a expressão numérica 1 possuir mais casas decimais que as especificadas pela expressão numérica 3, o resultado será arredondado para o número especificado de casas decimais.

 

Dicas

 

A função STR() é semelhante à função TRANSFORM(), que converte valores numéricos para uma cadeia de caracteres formatada. As máscaras de formatação são as mesmas utilizadas pela cláusula PICTURE das funções de interface de tela (MSGET, SAY, etc.).

 

A função STR() também é semelhante à função STRZERO(), que converte valores numéricos para uma cadeia de caracteres colocando zeros na frente do número convertido, ao invés de espaços em branco.

 

O inverso da função STR() é a função VAL(), que converte cadeias de caracteres para o seu respectivo valor numérico.

 

Exemplos

 

nNumber = 123.45

 

MsgAlert( STR(nNumber) )                       // Resulta:        123.45

MsgAlert( STR(nNumber, 4) )                   // Resulta:  123

MsgAlert( STR(nNumber, 2) )                   // Resulta: **

MsgAlert( STR(nNumber * 10, 7, 2) )        // Resulta: 1234.50

MsgAlert( STR(nNumber * 10, 12, 4) )      // Resulta:    1234.5000

MsgAlert( STR(nNumber, 10, 1) )              // Resulta:    1234.5

 

Este exemplo utiliza a função STR() para criar um índice com uma chave composta de valores de limite de crédito e nomes de clientes:

 

cIndice := “A1_FILIAL + STR(A1_LIMCRED, 12, 2) + A1_NOME”