Нужно использовать тип Currency (финансовый), который предназначен для минимизации ошибок округления в бухгалтерских расчётах.
Add(MainForm,6320956,266,84)
{
Width=319
Height=65
Position=1
link(onCreate,2834044:dotest,[])
}
Add(InlineCode,2834044,322,98)
{
WorkPoints=#6:dotest|
EventPoints=#5:onRes|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|19: onRes:THI_Event;|50: procedure dotest(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|28:procedure THiAsmUnit.dotest;|19:var x1,x2:Currency;|7:x:Real;|6:begin |13:x1:=40159.96;|10:x2:=40158;|11:x:=x1 - x2;|21:_hi_OnEvent(onRes,x);|4:end;|4:end.|
link(onRes,6320956:doCaption,[(362,104)(362,67)(254,67)(254,90)])
}