delphi 四舍五入保留一位或兩位小數寫法,后面參數為保留小數點位數
function RoundFloat(f: double; i: integer): double; var s: string; ef: Extended; begin if f = 0 then begin Result := 0; Exit; end; s := '#.' + StringOfChar('0', i); if s = '#.' then s := '#'; ef := StrToFloat(FloatToStr(f)); //防止浮點運算的誤差 result := StrToFloat(FormatFloat(s, ef)); end;
//調用
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text:=FloatToStr(RoundFloat(StrToFloat(Edit1.Text),2));
end;