Rechercher : dans
Par :

[C#] comment convertir la virgule en point

Dernière réponse le 9 nov 2005 à 09:58:10 michel mukila, le 9 nov 2005 à 08:58:38 
 Signaler ce message aux modérateurs

Bonjour,
je travail en c# en attaquant une base de donnée SQL et j' ai un problème lors de l' enregistrement du caractère point.
(ex: 3547,587 est enregistrer 3547,587) alors que dans une requête il est considere comme fin de champ.
Comment faire pour qu' il m' enregistre dans ma requête 3547.587

Merci d' avance.

Meilleures réponses pour « [C#] comment convertir la virgule en point » dans :
Quelques règles typographiques VoirPonctuation : les règles typographiques à respecter Point . Virgule , Point-virgule ; Deux-points : Point d'interrogation ? Point d'exclamation ! Points de suspension ... Parenthèses ( ) Guillemets « » Crochets Tiret long...
[Programmation] Conversion RGB/HSL/CMYK... VoirIl existe plusieurs manières de spécifier les couleurs (on dit qu'il existe plusieurs espaces de couleur). En informatique, on utilise principalement RGB (rouge/vert/bleu), mais il est nettement moins intuitif que d'autres tels que HSL...
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Langage C - Les types de données VoirLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...
Windows 7 - Bureau et icônes VoirDécouvrez votre Bureau Au démarrage de l’ordinateur, ce que vous voyez d’affiché à l’écran constitue le Bureau de Windows. C’est le point central névralgique de toutes les activités que vous allez effectuer avec votre système d’exploitation. C’est...

1

teebo, le 9 nov 2005 à 09:54:32

Salut,
Tu peux utiliser les différentes cultures si c'est un double, si c'est une chaine, tu peux simplement faire un replace...
Always forgive your enemies
Nothing annoys them so much.

(Oscar Wilde)

Répondre à teebo

2

 sebsauvage, le 9 nov 2005 à 09:58:10
  • +1

Mmm... il faut bien que tu distingue 2 choses:

- le nombre mathématique lui-même.
- sa représentation en fonction d'une culture (3547.587 ou 3547,587).

Le serveur SQL s'en fout, de la représentation du nombre. Lui, il ne stock que le nombre lui-même.


Tu as ce problème de "conversion" car tu créé probablement un ordre SQL à la volée sous forme de chaîne de caractères. Il faut éviter au maximum de faire ce genre de chose.

Tant que c'est possible, il faut utiliser des objets SqlCommand et (idéalement) des procédures stockées.

Il faut alors passer les paramètres dans l'objet SqlCommand.

Exemple (si mavaleur est un flottant):

objCommand.Parameters.Add(new SqlParameter("@monparametre", SqlDbType.Float)); 
objCommand.Parameters["@monparametre"].Value = mavaleur;



Avec cette méthode, tu n'as plus de problème de conversion (puisque tu passe un flottant au serveur SQL, peu importe sa représentation dans une culture ou un autre: c'est juste un nombre.)



Si ta valeur (3547.587 ou 3547,587) vient d'un formulaire web, là il faut faire la conversion texte-->nombre en fonction de la culture de l'utilisateur.

Répondre à sebsauvage