我的实用程序(docs page 489)的用户在github上记录了一个错误。错误是
错误:EConvertError' 11.0'不是有效的浮点值
现在面对它' 11.0'看起来像一个有效的浮点数,实际上我假设导致错误的代码是docto
if (strtofloat(OfficeAppVersion) < 14) then
即使我有版本&#39; 14.0&#39;我也无法重现错误。安装的单词。
是否有任何理由&#39; 11.0&#39;不会被Delphi的strtofloat
函数识别为浮点数。
我最初的想法是修剪一下,看是否有隐藏的字符
if (strtofloat(trim(OfficeAppVersion)) < 14) then
任何想法都感激不尽。
答案 0 :(得分:4)
正如其他人所说,问题是机器的默认语言环境使用与'.'
不同的字符作为小数分隔符。如果您需要转换使用'.'
的字符串,则可以使用接受StrToFloat()
作为输入的TFormatSettings
的重载版本:
var
fmt: TFormatSettings;
begin
fmt := TFormatSettings.Create; // get default settings first
fmt.DecimalSeparator := '.'; // customize as needed
if (StrToFloat(OfficeAppVersion, fmt) < 14) then
...
end;
答案 1 :(得分:2)
您的用户区域设置最有可能使用逗号作为decimalseparator