progress-4gl
Работа с числами
Поиск…
Вступление
Progress ABL поддерживает три формата чисел: 32 и 64-битные целые числа и поплавки.
операторы
Прогресс поддерживает + / - * в качестве операторов. Они не могут быть перегружены. Отдел всегда возвращает десятичное число. Если любое из чисел в вычислении является десятичным, будет возвращено десятичное число. В противном случае INTEGER
или INT64
.
Нет оператора +=
или ++
. Чтобы увеличить или уменьшить переменную, вы должны назначить ее себе плюс или минус. Итак, добавьте 1 к переменной, которую вы делаете: 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
Более математические функции
EXP - возвращает результат подведения числа к мощности.
EXP (базовый, экспоненциальный)
MESSAGE EXP(10, 2) VIEW-AS ALERT-BOX. // Messages 100
SQRT - возвращает квадратный корень из числа.
SQRT (число)
MESSAGE "The square root of 256 is " SQRT(256) VIEW-AS ALERT-BOX. // Messages 16
MODULO - определяет остаток после деления.
выражение MODULO base
DISPLAY 52 MODULO 12. //Displays 4
ROUND - округляет десятичное выражение до указанного количества мест после десятичной точки.
КРУГЛЫЙ (число, точность)
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 Усекает десятичное выражение на указанное число десятичных знаков, возвращая десятичное значение.
TRUNCATE (число, места)
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 - возвращает абсолютное значение числа
DISPLAY ABS(10 - 12). //Displays 2
DISPLAY ABS(-2) = ABS(2). //Displays yes
MINIMUM и MAXIMUM - возвращает малые и наибольшие числа
MINIMUM (число1, число2, ... числоn)
MAXIMUM (число1, номер2, ... числоn)
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
Сравнение номеров
Существуют стандартные функции для сравнения равенства, неравенства и т. Д.
название | Условное обозначение | альтернатива | пример |
---|---|---|---|
равных | знак равно | EQ | i = j |
Не равный | <> | Небраска | i <> j |
Меньше, чем | < | LT | i <j |
меньше или равно | <= | LE | i <= j |
Лучше чем | > = | GT | i> j |
Больше или равно | ≥ = | GE | i> = j |
Символ можно обменять с альтернативой и наоборот. Итак var1 <> var2
- это то же самое, что и var1 NE var2
.
Вы можете сравнить float с целым числом, но вы не можете сравнить, например, дату с целым числом.
Генератор случайных чисел
RANDOM - генерирует случайное число
СЛУЧАЙНО (низкий, высокий)
Генерирует псевдослучайное целое число между низким и высоким
// 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.