delphi中,可以将运算符带入函数中,从函数中直接调用该运算符进行比较吗?

geminii 2001-09-18 10:51:28
比如
function fun(AOperator: string):integer;
var
i,j: integer;
begin
if i AFunciotn(AOperator) j then result := 1
else result := -1;
end;
这里的AOperator是一个运算符,如 >,<,= 等等.
AFunction是一个能将AOperator转换成运算符的函数,有这样的函数吗?
...全文
59 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
x_qiang 2001-09-18
  • 打赏
  • 举报
回复
我曾经有过做法,用一个query,传到sql里面运算,很方便
geminii 2001-09-18
  • 打赏
  • 举报
回复
那就自己写个函数吧。
Function Fun_Compare(Ad_a: double; Ad_b: double; As_Op: string; Ai_precision: longint) : Boolean ;
begin
if As_Op= '=' then
if Round(Ad_A*Ai_precision) = Round(Ad_b*Ai_precision) then
Result := true
else
result := False;
if As_Op= '>' then
if Round(Ad_A*Ai_precision) > Round(Ad_b*Ai_precision) then
Result := true
else
result := false;
if As_Op= '<' then
if Round(Ad_A*Ai_precision) < Round(Ad_b*Ai_precision) then
Result := true
else
result := false;
if As_Op= '<>' then
if Round(Ad_a*Ai_precision) <> Round(Ad_b*Ai_precision) then
Result := true
else
result := false;
if As_Op= '>=' then
if Round(Ad_A*Ai_precision) >= Round(Ad_b*Ai_precision) then
Result := true
else
result := false;
if As_Op= '<=' then
if Round(Ad_A*Ai_precision) <= Round(Ad_b*Ai_precision) then
Result := true
else
result := false;
end;
chechy 2001-09-18
  • 打赏
  • 举报
回复
下列语言都不可以:Pascal,C,C++,Basic,Java,C#。
你可以通过传递一个函数来解决。或者就像楼上说的,用Case。
afeisky 2001-09-18
  • 打赏
  • 举报
回复
没有吧.你用case语句来实现吧.
geminii 2001-09-18
  • 打赏
  • 举报
回复
up

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧