Ricerca…


introduzione

Progress ABL supporta tre formati numerici: interi e float 32 e 64 bit.

operatori

Progress supporta + / - * come operatori. Non possono essere sovraccaricati. La divisione restituisce sempre un decimale. Se uno qualsiasi dei numeri in un calcolo è un decimale, verrà restituito un decimale. Altrimenti un INTEGER o INT64 .

Non esiste un operatore += o ++ . Per aumentare o diminuire una variabile devi assegnarla a se stessa più o meno qualcosa. Quindi per aggiungere 1 a una variabile, fai: i = i + 1.

DEFINE VARIABLE i AS INTEGER     NO-UNDO.
DEFINE VARIABLE j AS INTEGER     NO-UNDO.

i = 3.
j = 2.

DISPLAY i + j. // 3 + 2 = 5

DISPLAY i - j. // 3 - 2 = 1

DISPLAY i / j. // 3 / 2 = 1.5

DISPLAY INTEGER(i / j). //Integer(3/2) = 2.

DISPLAY i * j. //3 x 2 = 6

Altre funzioni matematiche

EXP - Restituisce il risultato dell'aumento di un numero a una potenza.

EXP (base, esponente)

MESSAGE EXP(10, 2) VIEW-AS ALERT-BOX. // Messages 100

SQRT - Restituisce la radice quadrata di un numero.

SQRT (numero)

MESSAGE "The square root of 256 is " SQRT(256) VIEW-AS ALERT-BOX. // Messages 16

MODULO - Determina il resto dopo la divisione.

espressione MODULO base

DISPLAY 52 MODULO 12. //Displays 4

ROUND - Arrotonda un'espressione decimale a un numero specificato di posizioni dopo il punto decimale.

ROUND (numero, precisione)

DISPLAY ROUND(67.12345, 6) FORMAT "99.99999". // 67.12345
DISPLAY ROUND(67.12345, 5) FORMAT "99.99999". // 67.12345
DISPLAY ROUND(67.12345, 4) FORMAT "99.99999". // 67.12350
DISPLAY ROUND(67.12345, 3) FORMAT "99.99999". // 67.12300
DISPLAY ROUND(67.12345, 2) FORMAT "99.99999". // 67.12000
DISPLAY ROUND(67.12345, 1) FORMAT "99.99999". // 67.10000
DISPLAY ROUND(67.12345, 0) FORMAT "99.99999". // 67.00000

TRUNCATE Tronca un'espressione decimale a un numero specificato di posizioni decimali, restituendo un valore decimale.

TRUNCATE (numero, luoghi)

DISPLAY TRUNCATE(67.12345, 6) FORMAT "99.99999". // 67.12345
DISPLAY TRUNCATE(67.12345, 5) FORMAT "99.99999". // 67.12345
DISPLAY TRUNCATE(67.12345, 4) FORMAT "99.99999". // 67.12340
DISPLAY TRUNCATE(67.12345, 3) FORMAT "99.99999". // 67.12300
DISPLAY TRUNCATE(67.12345, 2) FORMAT "99.99999". // 67.12000
DISPLAY TRUNCATE(67.12345, 1) FORMAT "99.99999". // 67.10000
DISPLAY TRUNCATE(67.12345, 0) FORMAT "99.99999". // 67.00000

ABSOLUTE - Restituisce il valore assoluto di un numero

DISPLAY ABS(10 - 12). //Displays 2
DISPLAY ABS(-2) = ABS(2). //Displays yes

MINIMO e MASSIMO - restituisce i piccoli e il numero più grande

MINIMO (numero1, numero2, ... numeron)

MASSIMO (numero1, numero2, ... numeron)

DEFINE VARIABLE i AS INTEGER     NO-UNDO.
DEFINE VARIABLE j AS INTEGER     NO-UNDO.
DEFINE VARIABLE k AS INTEGER     NO-UNDO.

i = 40.
j = 45.
k = 56.

DISPLAY MINIMUM(i, j, k) MAXIMUM(i, j, k). // Displays 40 and 56

Confrontare i numeri

Ci sono funzioni standard incorporate per confrontare l'uguaglianza, la disuguaglianza, ecc.

Nome Simbolo Alternativa Esempio
Pari = EQ i = j
Non uguale <> NE io <> j
Meno di < LT io <j
inferiore o uguale <= LE i <= j
Più grande di > = GT io> j
Maggiore o uguale ≥ = GE i> = j

Il simbolo può essere scambiato con l'alternativa e viceversa. Quindi var1 <> var2 è la stessa cosa di var1 NE var2 .

Puoi confrontare un float con un numero intero ma non puoi confrontare per esempio una data con un numero intero.

Generatore di numeri casuali

RANDOM : genera un numero casuale

CASUALE (basso, alto)

Genera un intero pseudo casuale tra basso e alto

// Example that generates 20 random numbers between 1 and 20 (1 and 20 included)
DEFINE VARIABLE i AS INTEGER     NO-UNDO.

DO i = 1 TO 20.
    DISPLAY i RANDOM(1, 20).
    PAUSE.
END.


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow