转换为字符串delphi时,在float上保留2个小数点

时间:2017-03-02 12:56:43

标签: string delphi decimal

我是从sql查询数据集向备忘录框添加行。使用循环遍历数据集的memo1.lines.add函数添加数据

memo1.Clear;
frmMain.Query2.Open;
try
  while not frmMain.Query2.Eof do
  begin
    memo1.Lines.Add(frmMain.Query2.FieldByName('mass').AsString);
    frmMain.Query2.Next;
  end;
finally
  frmMain.Query2.Close;
end;

从这一点开始工作正常,唯一的问题是因为数据被转换为字符串格式会丢失尾随0 .ie

Float value = 40.50  String Value = 40.5 .
Float value = 42.40  String Value = 42.4 .
Float value = 40.53  String Value = 40.53 .

有什么办法可以纠正吗? FormatFloat不想格式化它,因为它不再是浮点数。由于memobox中的3个sting值,StrtoInt无法工作。

2 个答案:

答案 0 :(得分:3)

而不是使用AsString将您的值检索为浮点值并使用visual index。 E.g。

memo1.Lines.Add(FloatToStrF(frmMain.Query2.FieldByName('mass').AsFloat, ffNumber, 15, 2));

答案 1 :(得分:3)

我喜欢Format

Format('%.2n', [frmMain.Query2.FieldByName('mass').AsFloat]);