有一段sqlserver sql语句:
declare @packstandard decimal(18,4),@quantity decimal(18,4)
set @packstandard=20.59
set @quantity=91.4523
select (sign(isnull(@quantity,0))*floor(abs(isnull(@quantity,0))/@packstandard)) as fullquantity,
(isnull(@quantity,0)-sign(isnull(@quantity,0))*(floor(abs(isnull(@quantity,0))/@packstandard)*@packstandard)) as unfullquantity
这样,fullquantity=4,unfullquantity=9.0923,这样4*20.59+9.0923=91.4523,刚好等于@quantity=91.4523
这一段代码,是根据总数量,一箱是20.59,换算成多少箱,剩下多少数量,上面算出4箱,剩下9.0923。现在问题,如果用delphi工具来写这个代码,如何来写,谢谢!
function test(packstandard, quantity: double; var fullquantity,
unfullquantity: double): boolean;
begin
if quantity = null then quantity := 0;
if packstandard = null then packstandard := 0;
fullquantity := sign(quantity)*floor(abs(quantity) / packstandard);
unfullquantity := quantity - fullquantity * packstandard ;
fullquantity := Round(fullquantity * 10000) / 10000;
unfullquantity := Round(unfullquantity * 10000) / 10000;
end;