我有一个西类牙用户在执行此操作时得到了invalid floating point error

var
  S : String;
  R : Real;
begin
  S := '3.12345';
  R := StrToFloat(S); //- Exception here.

原因是他的位置将,用作小数位!
我如何安全地将上面的字符串转换为浮点数,而不给用户炸弹。

最佳答案

滚动自己的StrToFloat版本

function StrToFloat_UK(const AStr: string): Float;
var
  FS: TFormatSettings;
begin
  FS.Create('en-UK');
  Result:= StrToFloat(AStr, FS):
end;

并使用它代替StrToFloat。

10-05 22:15