vic7tar писал(а): 04 Сентябрь 2018, 16:03Это уже другой интересный поворот.
 
Как я понимаю: здесь таже беда, что и с функцией Choose(), т.е. тип результата определяется выполняемой операцией.
Деление - всегда возвращает результат в REAL, поэтому присвоении результата в ULONG - запрещено.
Компилятор эту аксиому знает. 
Тип результата умножения зависит от типа данных аргументов, и срабатывает неявное преобразование типов данных.
Таких смешных примеров в Clarion с путаницей в неявных типах данных много, например:
Код: Выделить всё
  A# = 2  
  Message( Choose(A#,  10 / 3, 'арбуз'  )   )
					Последний раз редактировалось 
Игорь Столяров 04 Сентябрь 2018, 18:29, всего редактировалось 1 раз.