问题:关于delphi开发工具如何写代码
描述:

有一段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工具来写这个代码,如何来写,谢谢!


解决方案1:


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;

procedure TForm1.Button1Click(Sender: TObject);
var
  packstandard, quantity: double;
  fullquantity, unfullquantity : double ;
begin
  packstandard := 20.59 ;
  quantity := 91.4523 ;
  test(packstandard, quantity, fullquantity, unfullquantity);
  memo1.Lines.Add('packstandard: ' + FloatToStr(packstandard)) ;
  memo1.Lines.Add('quantity: ' + FloatToStr(quantity)) ;
  memo1.Lines.Add('fullquantity: ' + FloatToStr(fullquantity)) ;
  memo1.Lines.Add('unfullquantity: ' + FloatToStr(unfullquantity)) ;
end;

上一篇关于delphi7 资源调用问题
下一篇随机数种子问题——求大神解
明星图片
相关文章
《关于delphi开发工具如何写代码》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)