私のマシンと本番サーバーで文字列を変換すると、次のような異なる結果が得られるという奇妙な問題があります。
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;
WinXP マシンでの Button1Click の結果は '1.234' で、有効な浮動小数点値ではありませんが、Win2K マシンでは問題なく動作します。
反対側の Button2Click は WinXP で動作しますが、「1,234」は有効な浮動小数点値ではありませんというエラーが発生します。
両方のマシンの地域設定が「ドイツ語(オーストリア)」に設定されています-なぜこれが起こっているのか、少なくとも地域設定ダイアログにDelphiの「DecimalSeparator」および「GetLocaleChar(GetThreadLocale、LOCALE_SDECIMAL)」とは異なる小数点区切り文字が表示される理由についてのアイデア, '.')?
よろしく、ラインハルト