相信delphi7开发人员也遇到过这个问题FormatFloat 四舍五入的时候该进一的时候没进一,测试代码如下:
procedure TForm1.FormShow(Sender: TObject);
var
a:double;
begin
a:=16.685;
showmessage(formatfloat('0.00',a));
application.Terminate;
end;
结果是16.68.
FormatFloat源代码如下
function FormatFloat(const Format: string; Value: Extended): string;
var
Buffer: array[0..255] of Char;
begin
Value:=StrToFloat(FloatToStr(Value));
if Length(Format) > SizeOf(Buffer) - 32 then ConvertError(@SFormatTooLong);
SetString(Result, Buffer, FloatToTextFmt(Buffer, Value, fvExtended,
PChar(Format)));
end;
很明显如果数据类型是extende