Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.06;
Скачать: CL | DM;

Вниз

Округление чисел   Найти похожие ветки 

 
Kinda ©   (2004-05-14 17:06) [0]

Необходимо округлить число в большую сторону с указанной точностью на стороне сервера IB.
Для этих целей создаю dll и декларирую UDF:
Library LibMath;
uses
 SysUtils, Dialogs, Math;

function RoundUp(X:double;Digits:integer):double;stdcall;export;
var
ScaledFractPart,Temp:double;
Precision:extended;
begin
Precision:=IntPower(10,Digits);
ScaledFractPart:=Frac(X)*Precision;
Temp:=Frac(ScaledFractPart);
ScaledFractPart:=Int(ScaledFractPart);
if (X>0) and (Temp<>0) then ScaledFractPart:=ScaledFractPart+1;
if (X<0) and (Temp<>0) then ScaledFractPart:=ScaledFractPart-1;
RoundUP:=Int(X)+ScaledFractPart/Precision;
end;
Exports
RoundUp;
end.

DECLARE EXTERNAL FUNCTION ROUNDUP
   DOUBLE PRECISION,
   INTEGER
   RETURNS DOUBLE PRECISION BY VALUE
   ENTRY_POINT "RoundUp" MODULE_NAME "LibMath.dll";

однако при вызове функция возвращает значение 1
при любых значениях аргумента а в Делфи все работает нормально.

Помогите разобраться или подскажите готовое решение.


 
KINDA ©   (2004-05-14 17:56) [1]

Н-да. Проверка показала, что dll работает нормально
(вызвал её в VB). Значит проблемы в объявлении?



Страницы: 1 вся ветка

Текущий архив: 2004.06.06;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.049 c
3-1084790237
Klerk
2004-05-17 14:37
2004.06.06
Почему он не находит поле?


4-1083497908
anod
2004-05-02 15:38
2004.06.06
Изменить позицию пункта меню


3-1084467146
3APA3A
2004-05-13 20:52
2004.06.06
insert результатов select а


4-1083248401
CrazyDog
2004-04-29 18:20
2004.06.06
текст в чужом окне, но не Edit и не EM_GETSEL


14-1084611121
тихий вовочка
2004-05-15 12:52
2004.06.06
Японцы и американцы