delphi - 如何将整数值转换为 3 位点分隔的字符串

标签 delphi string-formatting freepascal

我不敢相信我竟然为此苦苦挣扎!希望这是一件容易的事。使用 Delphi 或 Freepascal:

给定整个整数值“1230”或“1850”,如何将其格式化为 3 位浮点字符串,其中小数位于第三位,并丢弃尾随数字。

示例

1230 表示“v12.3” 1850 表示“v18.5”

所以我需要将前两位数字转换为字符串。然后插入一个小数位。将小数点后第三位数字转换为字符串。并丢弃零。我研究过 Format、FormatFloat、Format 和其他几个,它们似乎都等同于将现有的 float 转换为字符串,或将浮点字符串转换为数字。

最佳答案

只需将整数值赋给 float 并除以 100.0。

使用Format()FormatFloat()将值转换为具有三位数字和小数点的字符串:

program Project8;

{$APPTYPE CONSOLE}

uses
  System.SysUtils;

var
  i : Integer;
const
  myFormat : TFormatSettings = (DecimalSeparator: '.');
begin
  i := 1230;
  WriteLn(Format('v%4.1f',[i/100.0],myFormat));   // Writes v12.3
  WriteLn(FormatFloat('v##.#',i/100.0,myFormat)); // Writes v12.3
  ReadLn;
end.

关于delphi - 如何将整数值转换为 3 位点分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59052443/

相关文章:

c++ - 定点数的动态格式化

delphi - 是否可以在 Delphi 和 FreePascal 中声明数组的 const 而不让元素为常量?

installation - Inno Setup - 没有 64 位数据类型?

delphi - MadExcept for delphi 在应用程序崩溃后不打印堆栈跟踪

delphi - 用DELPHI获取网页内容

python - 使用格式化为字符串的数字列表来删除数据框中包含这些值的行

java格式字符串 "%,d"和 "%, d"

delphi - 使用 try/finally try/except 而不是 begin/end 是否被认为是不好的做法或存在任何缺点?

user-interface - 关闭 Delphi 7 应用程序的主题