Модератор: Модераторы
Например 110840 - 110842 = 18446744073709551614.
Дож писал(а):А что, по-вашему, должно являться результатом вычитания этих чисел в UInt64?
Лекс Айрин писал(а):CRobin, вообще-то, это было из-за того, что переменные неявно превращались в знаковые, а потом, если надо, обратно.
CRobin писал(а):Дож писал(а):А что, по-вашему, должно являться результатом вычитания этих чисел в UInt64?
должно получится -2 и ранее получалось
begin
Writeln('UInt64 of -2 = ', UInt64(-2));
end.
UInt64 of -2 = 18446744073709551614
Дож писал(а): то это было что-то странное.
Дож писал(а):сейчас указанная вами проблема про вычитание не является ошибкой, а если ранее вы наблюдали -2 в UInt64, то это было что-то странное.
if a - b > c then
if int64(a - b) > c then
program Project1;
{$APPTYPE CONSOLE}
var
a,b:longword;
begin
a:=1;b:=2;
if (a-b)>0 then
Writeln('Passed');
readln;
end.
zub писал(а):alexey38Давайие сразу сажать за такое)). Обычная ошибка, не лучше не хуже других.
...
>>Вообще говоря, меня пугает не то что надо приводить тип, а непредсказукемость алгоритма
Алгоритм тут совершенно непричем,
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12