4D v16.3Num |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
Num
|
Num ( expressao {; separador} ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
expressao | String, Booleano, Inteiro longo |
![]() |
Cadeia para a qual retornar a forma numérica, ou Booleano para devolver 0 ou 1, ou expressão numérica | |||||
separador | String |
![]() |
Separador decimal | |||||
Resultado | Real |
![]() |
Formato numérico do parâmetro da expressão | |||||
O comando Num devolve em forma numérica a expressão de tipo cadeia, booleano, ou numérica que passou em expressao. O parâmetro opcional separador pode ser utilizado para determinar um separador decimal para a avaliação das expressões de tipo cadeia.
Expressões de tipo cadeia
Se expressao consiste apenas de um ou mais caracteres alfabéticos, Num devolve zero. Se expressao inclui caracteres alfabéticos e caracteres numéricos, o comando ignora os caracteres alfabéticos. Assim, Num transforma a cadeia "a1b2c3" no número 123.
Há três caracteres reservados que Num trata de maneira especial: o separador decimal definido dentro do sistema (se o parâmetro separador não for passado), o hífen “-”, e “e” ou “E”. Estes caracteres são interpretados como caracteres de formato numérico.
O exemplo abaixo ilustra como funciona Num quando for passado um argumento de tipo cadeia. Cada linha atribui um número à variável vResult. Os comentários descrevem os resultados:
vResult:=Num("ABCD") ` vResult vale 0
vResult:=Num("A1B2C3") ` vResult vale 123
vResult:=Num("123") ` vResult vale 123
vResult:=Num("123,4") ` vResult vale 123,4
vResult:=Num("-123") ` vResult vale -123
vResult:=Num("-123e2") ` vResult vale -12300
Neste exemplo, [Cliente]Dívida é comparado com o valor $1000. O comando Num aplicado a esta comparação devolve 1 ou 0. A multiplicação de uma cadeia por 1 ou 0 devolve a cadeia ou a cadeia vazia. Como resultado, [Cliente]Risco recebe o valor “Aceitável” ou “Inaceitável”:
// Se o cliente tiver dívidas menores a 1000, o risco é aceitável.
// Se o cliente tiver dívidas superiores a 1000, o risco é inaceitável.
[Cliente]Risco:=("Aceitável"*Num([Cliente]Dívida<1000))+("Inaceitável"*Num([Cliente]Dívida>=1000))
Este exemplo compara os resultados obtidos dependendo do separador “atual”:
$umaCadeia:="33,333.33"
$num:=Num($umaCadeia)
` by default, $num é igual a 33,33333 em um sistema francês
$num:=Num($umaCadeia;".")
` $num será avaliada corretamente sem importar o sistema;
` por exemplo, 33 333,33 em um sistema francês
GET SYSTEM FORMAT
Operadores de Cadeia
Operadores Lógicos
String
Produto: 4D
Tema: String
Número
11
Modificado: 4D v11 SQL
Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)