如何在delphi中保留小数点后两位?

| 我必须从数据库表中选择一些列数据,并将此数据仅保留两位小数。我看到这个
SQL.Strings = (\'select\' #9\'my_index \'#9\'his_index,\'...
#9是什么? 如何处理选择的数据以使其仅保留小数点后两位? 我对Delphi很陌生。 谢谢!     
已邀请:
#9
是代码9,TAB的字符。 如果要将浮点值转换为带小数点后两位的字符串,请使用一种格式设置功能,例如
Format()
var
  d: Double;
  s: string;
...
d := Sqrt(2.0);
s := Format(\'%.2f\', [d]);
    
#9
是制表符。 如果
f
是浮点变量,则可以执行
FormatFloat(\'#.##\', f)
获得不超过2位小数的
f
字符串表示形式。     
内部浮点格式例程仅适用于> 1的简单数字 对于通用小数位限制器,您需要做一些更复杂的事情,该限制器必须使用科学计数法在定点和值<1上均正确运行。 我用这个套路
function TForm1.Flt2str(Avalue:double; ADigits:integer):string;
var v:double; p:integer; e:string;
begin
  if abs(Avalue)<1 then
  begin
    result:=floatTostr(Avalue);
    p:=pos(\'E\',result);
    if p>0 then
    begin
      e:=copy(result,p,length(result));
      setlength(result,p-1);
      v:=RoundTo(StrToFloat(result),-Adigits);
      result:=FloatToStr(v)+e;
    end else
      result:=FloatToStr(RoundTo(Avalue,-Adigits));
  end
  else
    result:=FloatToStr(RoundTo(Avalue,-Adigits));
end;
因此,对于数字= 2,将1.2349舍入为1.23,将1.2349E-17舍入为1.23E-17     
function Round2(aValue:Real):Real;    
begin    
  x:=Round(aValue*100)/100;    
end;
    
这为我工作:
Function RoundingUserDefineDecaimalPart(FloatNum: Double; NoOfDecPart: integer): Double;
Var
     ls_FloatNumber: String;
Begin
     ls_FloatNumber := FloatToStr(FloatNum);
     IF Pos(\'.\', ls_FloatNumber) > 0 Then
          Result := StrToFloat
            (copy(ls_FloatNumber, 1, Pos(\'.\', ls_FloatNumber) - 1) + \'.\' + copy
                 (ls_FloatNumber, Pos(\'.\', ls_FloatNumber) + 1, NoOfDecPart))
     Else
          Result := FloatNum;
End;
    
Function RealFormat(FloatNum: Double): string;
Var
     ls_FloatNumber: String;
Begin
     ls_FloatNumber:=StringReplace(FloatToStr(FloatNum),\',\',\'.\',[rfReplaceAll]);
     IF Pos(\'.\', ls_FloatNumber) > 0 Then
          Result :=
            (copy(ls_FloatNumber, 1, Pos(\'.\', ls_FloatNumber) - 1) + \'.\' + copy
                 (ls_FloatNumber, Pos(\'.\', ls_FloatNumber) + 1, 2))
     Else
          Result := FloatToStr(FloatNum);
End;
    

要回复问题请先登录注册