我不敢相信我竟然为此苦苦挣扎!希望这是一件容易的事。使用 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/