Ума не приложу в чём дело...
Есть функция (с форума):
Код:
function RoundEx(X: Double; Precision: Integer ): Double;
{
Precision :
1 - до целых
10 - до десятых
100 - до сотых
...
}
var
ScaledFractPart, Temp: Double;
begin
ScaledFractPart := Frac(X) * Precision;
Temp := Frac(ScaledFractPart);
ScaledFractPart := Int(ScaledFractPart);
if Temp >= 0.5 then
ScaledFractPart := ScaledFractPart + 1;
if Temp <= -0.5 then
ScaledFractPart := ScaledFractPart - 1;
RoundEx := Int(X) + ScaledFractPart / Precision;
Затем...
Такой вот строчкой всё зашибись как работает:
Код:
RoundEx(0.123456789, 100000);
А вот такой вот комбинацией в цикле в своей проге пишу:
Код:
SuprD[i]:=RoundEx((0.1*Scpp[i]/D),100000);
ShowMessage(FloatToStr(SuprD[i]));
...и не пашет.. Т.е . не округляет.. Я наверное спёкся просто, но объясните мне, где ошибка?