Здравствуйте, Angakok, Вы писали:
A>Есть ли в Delphi аналог функции C++ double fmod(double x, double y) ?
A>Никак не найду что-нибудь похожее (((
Как-то так:
function fmod(x, y: extended): extended;
begin
result := frac(x/y);
if (x < 0) xor (result < 0) then result := -result;
end;
задание на дом: поправить на предмет тихого возврата NaN при y=0.0.
Есть ли в Delphi аналог функции C++ double fmod(double x, double y) ?
Никак не найду что-нибудь похожее (((
Или еще короче:
function fmod(x, y: extended): extended;
begin
result := frac(x/abs(y));
end;
p.s. примечание про "тихий NaN" в силе.
Здравствуйте, Serg Bormant, Вы писали:
SB>SB>function fmod(x, y: extended): extended;
SB>begin
SB> result := frac(x/abs(y));
SB>end;
SB>
SB>p.s. примечание про "тихий NaN" в силе.
по-моему abs(y)*frac(x/abs(y))
Здравствуйте, wallaby, Вы писали:
W>Здравствуйте, Serg Bormant, Вы писали:
SB>>SB>>function fmod(x, y: extended): extended;
SB>>begin
SB>> result := frac(x/abs(y));
SB>>end;
SB>>
SB>>p.s. примечание про "тихий NaN" в силе.
W>по-моему abs(y)*frac(x/abs(y))
точно, был невнимателен

следовательно и abs ни к чему... в сухом остатке
function fmod(x, y: extended): extended;
begin
result := y*frac(x/y);
end;