天 天空4567 Unregistered / Unconfirmed GUEST, unregistred user! 2006-05-28 #1 如果字符串为:-8.46372819E-16,怎样将此浮点型字符串先转化为浮点数,再求其与100的乘积,再8次幂方。
S szmh Unregistered / Unconfirmed GUEST, unregistred user! 2006-05-28 #2 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;
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;
天 天空4567 Unregistered / Unconfirmed GUEST, unregistred user! 2006-05-28 #3 to szmh: 谢谢。你的代码我验证过了,顺利通过。只是......
K kaida Unregistered / Unconfirmed GUEST, unregistred user! 2006-05-28 #4 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;
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;
天 天空4567 Unregistered / Unconfirmed GUEST, unregistred user! 2006-05-28 #5 谢谢二位。 代码是正确。 可结果不满足计算要求的是:FloatToStr(myreal)之后,本来应该保留8位小数,可这条语句执行之后,其值的类型转为了Extended类型了,后面的小数点多了很多位。我不需要这么多位,所以,该怎么办?
谢谢二位。 代码是正确。 可结果不满足计算要求的是:FloatToStr(myreal)之后,本来应该保留8位小数,可这条语句执行之后,其值的类型转为了Extended类型了,后面的小数点多了很多位。我不需要这么多位,所以,该怎么办?
T TYZhang Unregistered / Unconfirmed GUEST, unregistred user! 2006-05-29 #6 Edit1.Text:=format('%.9e',[myreal]);
天 天空4567 Unregistered / Unconfirmed GUEST, unregistred user! 2006-05-29 #7 format('%.9e',[myreal])之后是字符串。 我需要的是保留8位的实数。 用什么来实现呢?
W waterspace Unregistered / Unconfirmed GUEST, unregistred user! 2006-05-29 #8 round(myreal, -8); 好像是这样写吧,看下help
天 天空4567 Unregistered / Unconfirmed GUEST, unregistred user! 2006-05-30 #9 round(myreal, -8)是求整,我写错了,刚改过来,是求8位小数的实数。 富翁们,诚请!
Y yt_xiaokang Unregistered / Unconfirmed GUEST, unregistred user! 2006-05-30 #10 Edit1.Text:=floattostr(roundto(myreal,-8));
G goodjsh Unregistered / Unconfirmed GUEST, unregistred user! 2006-05-30 #11 取多少位小数的函数是:Roundto,取8位小数的实数为Roundto(myreal,-8)