[解决办法] 唉,还是把俺多年的存货贡献出来吧。久经考验呀 function comm_Round(dFigure:double;iDecimals : integer): double; //四舍五入函数; var iIER : integer; //乘数 i : cardinal; dTmp : double; begin iIER := 1; for i:=1 to iDecimals do iIER := iIER*10;
dTmp := dFigure * iIER; if dFigure>0 then //正数 begin if frac(dTmp)<0.5 then dTmp := Trunc(dTmp) else dTmp := Trunc(dTmp) + 1; result := dTmp/iIER; end else //非正数 begin if frac(dTmp)>-0.5 then dTmp := Trunc(dTmp) else dTmp := Trunc(dTmp) - 1; result := dTmp/iIER; end; end;
你自己试试吧。 [解决办法] procedure TForm1.Edit1Exit(Sender: TObject); //四舍五入2位 var ab:real; dd,cc,ee:real; begin ab :=strtofloat(edit1.Text); edit2.Text :=floattostr(RoundingOff(ab,2)); dd:=((ab*1000+5)/10); cc :=Trunc(dd); ee :=cc/100; edit4.text :=floattostr(ee); end; end.