J'ai ce problème bizarre qu'un converti d'une chaîne sur ma machine et un serveur de production obtient des résultats différents par exemple:Delphi 5 - StrToFloat résultats differntly sur Windows XP et Win2K
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;
résultats Button1Click sur ma machine Windows XP en un '1.234' n'est pas une valeur à virgule flottante valide alors que sur la machine Win2K cela fonctionne très bien. Button2Click sur l'autre extrémité se comporte sur mon WinXP mais résultera en un '1.234' n'est pas une erreur de valeur de virgule flottante valide.
Les deux machines ont des paramètres régionaux réglés sur « allemand (Autriche) » - toute idée pourquoi cela se passe ou tout au moins pourquoi la boîte de dialogue régionale paramètres ne présente un caractère DecimalSeparator différent de Delphi « DecimalSeparator » et « GetLocaleChar (GetThreadLocale, LOCALE_SDECIMAL, '.)?
Cordialement, Reinhard
thx, c'est ce que je pensais aussi, alors j'ai imprimé la DecimalSeparator et il a montré différent de ce que montrait dans les RegionalSettings que ce qui est dans « DecimalSeparator » ou « GetLocaleChar (GetThreadLocale, LOCALE_SDECIMAL, '.) » De toute façon, j'ai réglé et re-régler les paramètres régionaux de l'allemand (Autriche) à l'anglais (UK) et vice versa et vous ne le croirez pas, maintenant tout va bien. – pastacool
Alors, pourquoi n'avez-vous pas marqué cette réponse comme "acceptée"? –