【问题标题】:How do I format an Integer using current locale in Delphi如何在 Delphi 中使用当前语言环境格式化整数
【发布时间】:2008-11-17 16:07:57
【问题描述】:
var i : integer;

i := 1234567;

鉴于上述情况,我希望将字符串“1,234,567”作为输出(假设为英国语言环境)。 IntToStr 只给了我“1234567”。我敢肯定有一个单行,但我找不到它......

【问题讨论】:

    标签: delphi text-formatting


    【解决方案1】:

    试试格式化功能。

    Label1.Caption := Format('%.0n', [i + 0.0]);
    

    【讨论】:

      【解决方案2】:

      或者,如果您需要线程安全或想要确保使用系统默认语言环境或想要指定一个:

      function FormatIntFromLCID(const AValue: Integer; const LCID: Integer = LOCALE_SYSTEM_DEFAULT): string;
      var
        AFormatSettings: TFormatSettings;
      begin
        GetLocaleFormatSettings(LCID, AFormatSettings);
        Result := FormatFloat('#,##0',AValue, AFormatSettings);
      end;
      

      请参阅this post,了解有关格式/语言环境的更完整讨论

      【讨论】:

        【解决方案3】:

        s := FormatFloat('#,##0', i);

        【讨论】:

          【解决方案4】:

          我有这个功能,其中 d 可能表示十进制数:

          function dn(i: integer): string; 
          begin 
            result := format('%.0n', [i.ToDouble]) 
          end;
          

          【讨论】:

            【解决方案5】:

            格式('%n', [12345.678]);

            【讨论】:

              【解决方案6】:
              stringreplace(format('%n',[1234567.0]),'.00','',[]);
              

              【讨论】:

                猜你喜欢
                • 2011-10-07
                • 2015-03-07
                • 1970-01-01
                • 2015-05-31
                • 1970-01-01
                • 2011-02-16
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多