首页 > 解决方案 > 如何将整数整数转换为 3 位点分隔字符串

问题描述

我不敢相信我正在为此苦苦挣扎!希望这是一个容易的。使用 Delphi 或 Freepascal:

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

例子

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

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

标签: delphistring-formattingfreepascal

解决方案


只需将整数值分配给浮点数并除以 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.

推荐阅读