Mon premier code sur codes-source
Qui n'a jamais eu de souci en voulant convertir une saisie utilisateur en flottant ?
Ce code permet de convertir une chaine en flottant sans se soucier du séparateur des paramètres régionnaux
En espérant que ca puisse être utile à quelqu'un
Source / Exemple :
(* ************************************************************************** *)
(* FUNCTION StrF_ToValue *)
(* *)
(* Retourne une valeur réelle a partir d'une chaine avec . ou , *)
(* comme séparareur *)
(* *)
(* ************************************************************************** *)
Function StrF_ToValue ( Const Chaine : String ) : double;
Var
DecSeparator : Char;
S : String;
I : Integer;
Begin
(* sauvegarde séparateur des options windows *)
DecSeparator := DecimalSeparator;
S := Chaine;
Try
(* Force le séparateur '.' *)
DecimalSeparator := '.';
(* Si on trouve le séparateur '.' *)
IF Pos(DecimalSeparator, S) > 0 THEN
Begin
Try
Result := StrToFloat (S);
Except
(* Si erreur de conversion *)
Raise;
End;
End Else
Begin
(* Si on trouve le séparateur ',' *)
I := Pos(',', S);
(* On le remplace par '.' *)
IF I > 0 THEN
S[I] := DecimalSeparator;
Try
Result := StrToFloat (S);
Except
(* Si erreur de conversion *)
Raise;
End;
End;
Finally
(* rétabli séparateur des options windows *)
DecimalSeparator := DecSeparator;
End;
End;
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.