DecimalSeparator/fr
English · Français
DecimalSeparator (séparateur décimal) est une variable char globale dont le contenu est déterminé par la locale utilisée. Elle est utilisée pour la représentation des nombres flottants sous forme de chaîne de caractères dans les fonctions StrToFloat() et FloatToStr().
Aussi longtemps que toutes les instances d'un programme utilise le même séparateur décimal, tout se passera comme prévu. Toutefois, si l'une des instances du programme est basée sur la locale holllandaise (nl_NL) et écrit un fichier contenant des nombres flottants formatés et qu'une autre instance lit ces données avec une locale anglaise US (en_US), vous allez avoir un problème car un nombre formaté comme 123,456 va provoqué une exception de conversion... (la virgule n'est pas le séparateur décimal de cette locale.)
Un palliatif pouvant être utilisé :
function DecFloat2Str( const d: double ): string;
var
myseparator: char;
begin
myseparator := DecimalSeparator;
DecimalSeparator := '.';
Result := FloatToStr( d );
DecimalSeparator := myseparator;
end;DecimalSeparator est défini dans sysinth.inc comme:
DecimalSeparator : Char absolute DefaultFormatSettings.DecimalSeparator deprecated;NB : cette variable est marquée obsolète, il faut employer DefaultFormatSettings.DecimalSeparator à la place.
Voir aussi
From the Free Pascal wiki, page "DecimalSeparator/fr", as it stood on 2020-02-12 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.