浮点型字符串转化为浮点数,并进行计算 急(30分)

  • 主题发起人 主题发起人 天空4567
  • 开始时间 开始时间

天空4567

Unregistered / Unconfirmed
GUEST, unregistred user!
如果字符串为:-8.46372819E-16,怎样将此浮点型字符串先转化为浮点数,再求其与100的乘积,再8次幂方。
 
uses math

var
tmp:string;
myreal:Real;
begin
tmp:='-8.46372819E-16';
myreal:=StrToFloat(tmp);
myreal:=power(myreal*100,8);
Edit1.Text:=FloatToStr(myreal);
end;
 
to szmh:
谢谢。你的代码我验证过了,顺利通过。只是......
 
szmh 的算法没错:
procedure TForm1.Button1Click(Sender: TObject);
var
tmp:string;
myreal:real;
begin
tmp:='-8.46372819E-16';
myreal:=StrToFloat(tmp)*100;
Edit1.Text:=FloatToStr(myreal);//-8.46372819E-14
myreal:=power(myreal,8);
Edit2.Text:=FloatToStr(myreal);//2.63325951091255E-105
end;
 
谢谢二位。
代码是正确。
可结果不满足计算要求的是:FloatToStr(myreal)之后,本来应该保留8位小数,可这条语句执行之后,其值的类型转为了Extended类型了,后面的小数点多了很多位。我不需要这么多位,所以,该怎么办?
 
Edit1.Text:=format('%.9e',[myreal]);
 
format('%.9e',[myreal])之后是字符串。
我需要的是保留8位的实数。
用什么来实现呢?
 
round(myreal, -8);
好像是这样写吧,看下help
 
round(myreal, -8)是求整,我写错了,刚改过来,是求8位小数的实数。
富翁们,诚请!
 
Edit1.Text:=floattostr(roundto(myreal,-8));
 
取多少位小数的函数是:Roundto,取8位小数的实数为Roundto(myreal,-8)
 
谢谢楼上二位。接受答案。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部