对一个浮点型的数,取到小数点后面第二位,用什么函数?

getgoodgift 2004-04-22 10:36:08
谢谢!!!
...全文
251 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bnabinge 2004-04-24
  • 打赏
  • 举报
回复
rocedure TForm13.savepu;
var
numkao:integer;
sbinge:string;
flonum:real;
begin
flonum:=strToFloat(thingsname.Text)/numkao;
sbinge:=formatFloat('0.'+stringOfChar('0',2),flonum);

end;
sexalpha 2004-04-24
  • 打赏
  • 举报
回复
format('%14.2f',[你的浮点数])
nibahan 2004-04-24
  • 打赏
  • 举报
回复
strtofloat(formatfloat('#.##',string));
kaershaw 2004-04-22
  • 打赏
  • 举报
回复
使用formatfloat函数返回值是一个String类型的,再转化成float即可。
programgirl 2004-04-22
  • 打赏
  • 举报
回复
赞成楼上的说法!比较简单!

但如果那个数是个变量的时候,建议写一个函数!如下,digit为保留长度,VARDATE为该浮点型的数

function roundformat(digit:integer;vardata:Real):Real;
var intvardata:Real;
pointchar:Real;
strvar,strvar1:string;
i:integer;
changedata:Real;
fuhao:integer;
begin
if (vardata<0) then fuhao:=-1 else fuhao:=1;
vardata:=abs(vardata);
intvardata:=int(vardata);//取整部分
pointchar:=Frac(vardata);//小数部分
strvar:=FloatToStr(pointchar);
strvar:=copy(strvar,1,digit+3);
if length(strvar)<digit+3 then
for i:=1 to digit+3-length(strvar) do strvar:=strvar+'0';
strvar1:=strvar;
setlength(strvar,digit+1);
pointchar:=strtofloat(strvar);
strvar:=strvar1;
if strvar<>'' then
begin
if StrToInt(strvar[length(strvar)])>=5 then
begin
if strvar1[length(strvar1)-1]='.' then
begin
changedata:=StrToInt(strvar1[length(strvar1)-2])+1;
strvar:=Floattostr(changedata);
end else
begin
changedata:=strtoFloat(strvar[length(strvar)-1])+1;
for i:=1 to digit do changedata:=changedata*0.1;
pointchar:=pointchar+changedata;
strvar:=FloatToStr(pointchar);
end;
end else
begin
if strvar[length(strvar)-1]='.' then strvar:='0' else
strvar:=copy(strvar,1,length(strvar)-1);
end;
if strvar<>'' then pointchar:=StrToFloat(Strvar) else pointchar:=0;
Result:=(intvardata+pointchar)*fuhao;
end else
begin
Result:=intvardata;
for i:=1 to digit do
if i=1 then result:=(StrToFloat(FloatToStr(intvardata)+'.0'))*fuhao else
result:=(StrToFloat(FloatToStr(intvardata)+'0'))*fuhao;
end;
end;
yuanyu368 2004-04-22
  • 打赏
  • 举报
回复
strtofloat(formatfloat('0.00',45.214514145));
楚人无衣 2004-04-22
  • 打赏
  • 举报
回复
uses Math
楚人无衣 2004-04-22
  • 打赏
  • 举报
回复
1.RoundTo(value, -2);
2.StrToFloat(FormatFloat('0.00', value));
liwowo 2004-04-22
  • 打赏
  • 举报
回复
浮点取整
floor 和 ceil 是 math unit 里的函数,使用前要先 Uses Math。
trunc 和 round 是 system unit 里的函数,缺省就可以用。
floor 直接往小的取,比如 floor(-123.55)=-124,floor(123.55)=123
trunc 直接切下整数,比如 trunc(-123.55)=-123, floor(123.55)=123
ceil 直接往大的取,比如 ceil(-123.55)=-123, ceil(123.55)=124
round 计算四舍五入,比如 round(-123.55)=-124,round(123.55)=124
ztenv 2004-04-22
  • 打赏
  • 举报
回复
format()
BENJOE 2004-04-22
  • 打赏
  • 举报
回复
乘10的2次方求与10的余数

5,386

社区成员

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

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