[C#] comment convertir la virgule en point
Fermé
michel mukila
-
9 nov. 2005 à 08:58
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 - 9 nov. 2005 à 09:58
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 - 9 nov. 2005 à 09:58
A voir également:
- [C#] comment convertir la virgule en point
- Convertir youtube en mp3 avec audacity - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Point de suite word - Guide
- Point de restauration - Guide
- Comment inserer une video dans un power point - Guide
2 réponses
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
9 nov. 2005 à 09:58
9 nov. 2005 à 09:58
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):
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.
- 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.
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
9 nov. 2005 à 09:54
9 nov. 2005 à 09:54
Salut,
Tu peux utiliser les différentes cultures si c'est un double, si c'est une chaine, tu peux simplement faire un replace...
Tu peux utiliser les différentes cultures si c'est un double, si c'est une chaine, tu peux simplement faire un replace...