Вверх ↑
Ответов: 5227
Рейтинг: 587
#1: 2022-02-15 19:36:38 ЛС | профиль | цитата
Возможно кому то захочется округлить реальные числа до определённого числа знаков после запятой не переводя это число в строку возможно пригодится этот код.

Add(MainForm,2953706,21,70)
{
Width=249
Height=161
}
Add(InlineCode,9717935,294,175)
{
WorkPoints=#7:doRound|
EventPoints=#5:onRes|
DataPoints=#5:Count|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses kol,Windows,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|5: |9: public|28: Count,onRes: THI_Event;|49: procedure doRound(var dt: TData; idx: word);|5: end;|0:|14:implementation|0:|85:function SimpleRoundTo(const AValue: Extended; const ADigit: integer = -2): Extended;|3:var|20: LFactor: Extended;|5:begin|34: LFactor := IntPower(10, ADigit);|20: if AValue < 0 then|55: Result := Trunc((AValue / LFactor) - 0.5) * LFactor|6: else|56: Result := Trunc((AValue / LFactor) + 0.5) * LFactor;|4:end;|0:|30:procedure THiAsmClass.doRound;|3:var|14: d,Res: Real;|13: i: integer;|5:begin|19: d := ToReal(dt);|33: i := ToIntegerEvent(Count)*-1;|29: Res := SimpleRoundTo(d,i);|25: _hi_onEvent(onRes,Res);|4:end;|3: |4:end.|
link(onRes,8944723:doEvent,[])
link(Count,11758678:Text,[])
}
Add(Timer,6214879,105,70)
{
Interval=3000
link(onTimer,4947192:doRandom,[])
}
Add(Random,4947192,161,70)
{
Min=-100
Mode=1
link(onRandom,2392438:doEvent1,[])
}
Add(Label,4759657,294,70)
{
Left=25
Top=20
}
Add(Hub,2392438,210,70)
{
OutCount=3
link(onEvent1,4759657:doText,[])
link(onEvent2,9717935:doRound,[(266,83)(266,181)])
link(onEvent3,3719503:doConvert,[(254,90)(254,230)])
}
Add(Edit,11758678,294,119)
{
Left=25
Top=55
Text="3"
}
Add(Label,14798682,364,175)
{
Left=95
Top=55
}
Add(ConvertorEx,3719503,294,224)
{
Mode=15
Decimals=3
link(onResult,6617061:doEvent,[])
}
Add(Label,15275088,364,224)
{
Left=95
Top=75
}
Add(Debug,8944723,336,175)
{
link(onEvent,14798682:doText,[])
}
Add(Debug,6617061,336,224)
{
link(onEvent,15275088:doText,[])
}

карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0