我有一个奇怪的问题,在我的机器和生产服务器上转换字符串会得到不同的结果,例如:
procedure TForm1.Button1Click(Sender: TObject);
var
s1: string;
f1: double;
begin
s1 := '1.234';
f1 := StrToFloat(s1);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
s2: string;
f2: double;
begin
s2 := '1,234';
f2 := StrToFloat(s2);
end;
Button1Click 在我的 WinXP 机器上的“1.234”结果不是有效的浮点值,而在 Win2K 机器上这工作得很好。
另一端的 Button2Click 在我的 WinXP 上运行,但确实导致 '1,234' is not a valid floating point value 错误。
两台机器的区域设置都设置为“German(Austria)” - 关于为什么会发生这种情况的任何想法,或者至少为什么区域设置对话框确实显示了与 Delphi“DecimalSeparator”和“GetLocaleChar(GetThreadLocale, LOCALE_SDECIMAL) 不同的小数分隔符字符。 , '.')?
问候,莱因哈德