double 类型 返回 5.5518684497e+250

procedure TForm1.Button1Click(Sender: TObject);
var
strApp_AcountSql,strApp_ChargeSql,strSql,register_id:string;
nHouseSize,nHouseCost,nFundQuantity,Fee,Fee2,nBSQuantity:Double;
nLoanSpan,nBsSpan:Integer;
begin

      strSql :='select * from APP_ACCOUNTPRO where ACC_DATE >= To_Date(''2009-01-01'',''yyyy-mm-dd'') and ACC_DATE < To_Date(''2009-12-30'',''yyyy-mm-dd'') + 1 And nvl(acc_isbshouse, 0) = 1 AND NVL(ACC_CANCELFLAG,0) <> 2 and register_id=''09014218''';
      Query_Open(qrMain,strSql);
      strApp_ChargeSql :='select CHRG_TOTAL,mode_code from app_charge c where c.register_id=''%s''';
      with  qrMain do
      begin
          First;
          while not qrMain.Eof do
          begin
          register_id := qrMain.FieldByName('register_id').AsString;
          nFundQuantity := qrMain.FieldByName('ACC_FUNDQUANTITY').AsFloat*10000;
          nLoanSpan := qrMain.FieldByName('ACC_LOANSPAN').AsInteger;
          nHouseCost := qrMain.FieldByName('ACC_HOUSECOST').AsInteger;
          nHouseSize := qrMain.FieldByName('ACC_HOUSESIZE').AsFloat;
          nBSQuantity := qrMain.FieldByName('ACC_BSFUNDQUANTITY').AsFloat*10000;
          nBSSpan := qrMain.FieldByName('ACC_BSLOANSPAN').AsInteger;
          strApp_ChargeSql:=Format(strApp_ChargeSql,[register_id]);
          Query_Open(qyCharge,strApp_ChargeSql);
          Fee :=100.88;
          Fee:=GetDanbaoFeeFromMode(qyCharge.FieldByName('mode_code').AsString, nBSQuantity, nBSSpan);
          Fee2 :=100.88;
          Fee2 :=qyCharge.FieldByName('CHRG_TOTAL').AsFloat;
          Next;
            end;

          end;


end;

奇怪的是 调试时 还没有运行到赋值的地方 Fee 和 Fee2 的值就已经是5.5518684497e+250
了,重新赋值也没起作用

從你的代碼看,Fee,Fee2是局部變量,由于這兩個變量沒有實際作用,也就是無意義的代碼。delphi會做出優化,賦值語句就不被執行。如Fee :=100.88; 你在這里設定斷點看看,應該是無效的。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值