A partir de um numérico esta função retorna uma string formatada, inserindo espaços (" ") à esquerda e/ou o símbolo decimal (".") em suas casas, de acordo com a informação do parâmetro.

Sintaxe

Str( < nNumero >, [ nTamanho ], [ nDecimais ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

nNumero

numérico

Indica o valor numérico que será convertido para string.

X


nTamanho

numérico

Indica o tamanho da string será gerada.



nDecimais

numérico

Indica o número de casas após o símbolo decimal.



Retorno

Nome

Tipo

Descrição

cRet

caractere

Retorna uma string a partir do valor numérico e do tamanho informado no parâmetro.

Observações

  • Observe que <nTamanho> indica o número de caracteres que serão utilizados para representar o valor passado através de <nValor>.
  • Sempre que o número de caracteres passados em <nTamanho> não for suficiente para representar <nValor> juntamente de seu símbolo e casas decimais, a função retornará um conjunto de caracteres ("*") com o <nTamanho> definido.
  • Embora a função STR tenha algumas regras básicas de arredondamento, não é recomendado utilizá-la para este fim.
    Caso haja necessidade de arredondar um valor, recomendamos a utilização da função Round() para esta finalidade.

Exemplos

#DEFINE CRLF Chr(13)+Chr(10)
User Function Exemplo()
Local cMensagem := ""
//+----------------------------------------------------------------------------+
//|Exemplifica o uso da função Str                                             |
//+----------------------------------------------------------------------------+
cMensagem += "Str(98765432.1, 1, 8) = "  + Str(98765432.1, 1, 8)  + CRLF
cMensagem += "Str(9876543.21)       = "  + Str(9876543.21)        + CRLF
cMensagem += "Str(987654.321, 3, 6) = "  + Str(987654.321, 3, 6)  + CRLF
cMensagem += "Str(98765.4321) = "        + Str(98765.4321)        + CRLF
cMensagem += "Str(9876.54321, 5, 4) = "  + Str(9876.54321, 5, 4)  + CRLF
cMensagem += "Str(987.654321, 6 ,3) = "  + Str(987.654321, 6, 3)  + CRLF
cMensagem += "Str(98.7654321, 7, 2) = "  + Str(98.7654321, 7, 2)  + CRLF
cMensagem += "Str(9.87654321, 8, 1) = "  + Str(9.87654321, 8, 1)  + CRLF
cMensagem += "Str(0) = "                 + Str(0)                 + CRLF
cMensagem += "Str(-9.87654321, 5, 2) = " + Str(-9.87654321, 5, 2) + CRLF
cMensagem += "Str(-98.7654321, 4, 1) = " + Str(-98.7654321, 4, 1) + CRLF
cMensagem += "Str(-987.654321) = "       + Str(-987.654321)       + CRLF
cMensagem += "Str(-9876.54321, 2, 6) = " + Str(-9876.54321, 2, 6) + CRLF
cMensagem += "Str(-98765.4321, 1, 5) = " + Str(-98765.4321, 1, 5) + CRLF
cMensagem += "Str(-987654.321, 0, 0) = " + Str(-987654.321, 0, 0) + CRLF
cMensagem += "Str(-9876543.21, 5, 1) = " + Str(-9876543.21, 5, 1) + CRLF
cMensagem += "Str(-98765432.1, 4, 2) = " + Str(-98765432.1, 4, 2) + CRLF
//+----------------------------------------------------------------------------+
//|Apresenta uma mensagem com os resultados obtidos                            |
//+----------------------------------------------------------------------------+
Return MsgInfo(cMensagem, "Exemplo do Str")

Resultado do Exemplo

Veja também

  • Sem rótulos