字符串'110*950*200'如何作为算术表达式进行运算 ( 积分: 35 )

  • 主题发起人 主题发起人 s1ihome
  • 开始时间 开始时间
S

s1ihome

Unregistered / Unconfirmed
GUEST, unregistred user!
从数据库中取出上述字符串,取3数乘积/10^9,不知道应该如何转化?
 
从数据库中取出上述字符串,取3数乘积/10^9,不知道应该如何转化?
 
procedure TForm1.Button1Click(Sender: TObject);
var
vScript: Variant;
str:string;
begin
str:='110*950*200';
vScript:=CreateOleObject('ScriptControl');
vScript.Language := 'JavaScript';
str:=vScript.Eval(str);
showmessage(str);
end;
 
var
a,b,c :Longint;
sStr :string;
begin
sStr := '110*950*200';
a := strtoint(copy(sStr,1,pos('*',sStr)-1));
sStr := copy(sStr,pos('*',sStr)+1,MaxInt);
b := strtoint(copy(sStr,1,pos('*',sStr)-1));
sStr := copy(sStr,pos('*',sStr)+1,MaxInt);
c := strtoint(sStr);
showmessage(floattostr(a*b*c / power(10,9)));
end;
 
with tempquery do
begin
close;
sql.clear;
sql.add('select 110*950*200');
open;
Showmessage(inttostr(Fields[0].Asinteger));
end;
这里可以使用任何SQL Server内部函数,如果需要特殊还可以自定义函数。
 
我这个是在report machine里面使用script写
基本接受ak_2004的答案
但是其中power(10,9)这个在script中提示错误
 
后退
顶部