【问题标题】:How to limit quantity of fractional numbers of a given variable in Delphi如何在 Delphi 中限制给定变量的小数数量
【发布时间】:2020-10-28 08:11:57
【问题描述】:

有谁知道如何在 Delphi 中格式化显示的变量的小数数量(在我的程序中,它使用变量 Real)。

即:

            3.14159265359

integer value|fractional value   

根据示例,我只想将这个数字显示为 3.14(请注意,这只是一个示例。在我的程序中,用户将输入实际值)。

我期待在标签中显示此值。有没有办法做到这一点?如果是,怎么做?

参考 -> 链接来举例说明我想要做什么,但是在 Delphi 中(而不是 Java,这是下面链接中使用的语言):

How I can to limit decimal numbers of double variable?

【问题讨论】:

  • SysUtils.FormatFloat()及相关函数。
  • 将函数FloatToStrF与“格式类型”ffFixed一起使用,数字= 2,精度至少= 3
  • 非常好,这正是我所需要的。谢谢!
  • @FARS 如果您使用 Delphi Coder 提供的答案回答您自己的问题,您实际上可能会获得一些声誉积分。哪个好!

标签: forms delphi vcl


【解决方案1】:

您可以使用 Delphi 的内置函数非常轻松地做到这一点:

FloatToStrF();

这个函数接受一个实数值并返回一个带精度点的字符串,在您的示例 3.14 中

代码如下:

FloatToStr(ffFixed, 12 ,2);
  1. 首先指定格式的类型,在这种情况下它将是一个固定值。
  2. 二是小数点前的整数值大小。
  3. 第三个参数是小数点后的小数位数。

希望这有帮助!

【讨论】:

    【解决方案2】:

    成功实现我期待的代码示例:

    Var
        a, b, c: Real;
    begin
          a := StrToFloat(txt1.Text);
          b := INT(a);
          c := frac(ABS(a)) + 0.000000000000001;
    

    完整代码示例:

    unit Unit10;
    
    interface
    
    uses
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
    
    type
      TfrmM4E1 = class(TForm)
        btn1: TButton;
        lbl1: TLabel;
        txt1: TEdit;
        lbl2: TLabel;
        procedure btn1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      frmM4E1: TfrmM4E1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TfrmM4E1.btn1Click(Sender: TObject);
    Var
        a, b, c: Real;
    begin
          a := StrToFloat(txt1.Text);
          b := INT(a);
          c := frac(ABS(a)) + 0.000000000000001;
          lbl1.Caption := FloatToStr(b);
          lbl2.Caption := FloatToStr(c);
    end;
    
    end.
    

    快速解释:这是一个 UI 的代码实现,它有一个按钮、一个文本字段(获取小数值)和两个标签,其中一个显示输入数字的整数部分,另一个标签,显示输入数字的小数部分。

    变量“a”存储插入的值;

    变量“b”存储变量“a”的整数值;

    变量“c”存储变量“a”的小数值,加上一个数字校正,因为“c”在显示的最终值中缺少 0.000000000000001。

    最后,标签“lbl1”和“lbl2”分别显示变量“b”和“c”的值。

    【讨论】:

      猜你喜欢
      • 2016-02-09
      • 1970-01-01
      • 2018-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 2012-02-12
      • 1970-01-01
      相关资源
      最近更新 更多