【问题标题】:Operator not applicable to this operand type Delphi运算符不适用于此操作数类型 Delphi
【发布时间】:2018-11-22 13:39:43
【问题描述】:

请有人帮我解决这个错误。

[错误] Unit1.pas(39): 运算符不适用于此操作数类型

代码是:

procedure TForm1.Button1Click(Sender: TObject);
var
  k: Integer;
  broj: Real;
begin
  k := StrToInt(Edit1.Text);
  if k <= 9 then
    broj := k
  else    
    broj := (k + 10) / 2;

  if k mod 2 = 0 then
    broj := broj / 10
  else
    broj := broj mod 10; // error line

  ShowMessage(FloatToStr(broj));    
end;

【问题讨论】:

  • 我认为没有充分的理由在这里使用Real。你为什么不把j 变成Integer 呢?然后divmod 也可以工作:if k mod 2 = 0 then broj := broj div 10 else broj := broj mod 10;

标签: delphi delphi-7


【解决方案1】:

您不能将 moddiv 与浮点类型一起使用,例如Real。 或者previous answer,您可以使用它。

broj := Frac(broj / 10) * 10;

或者只是FMod来自System.Math

broj := FMod(broj, 10);

【讨论】:

    【解决方案2】:

    mod 运算符需要 2 个整数。 broj 是真实的(浮动)。

    改用这个

    broj := broj - Trunc(broj / 10) * 10;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-25
      • 2011-07-07
      相关资源
      最近更新 更多