Séparateur décimal des nombres.

Soyez le premier à donner votre avis sur cette source.

Vue 11 289 fois - Téléchargée 509 fois

Description

VB 2005
Dans les options régionales (panneau de configuration - Options régionales, date, heure et langue ? Options régionales et linguistique), si la culture est française avec les paramètres par défaut, entre autres, la virgule comme séparateur décimal des nombres, l?emploi du «.» du pavé numérique comme séparateur, pose problème avec les fonctions de conversion (CType, CDec, ?) la fonction Parse, les mise en forme ToString.
Le plus simple, pour régler ces problèmes, est de personnaliser les options régionales et d?imposer le point.
Mais si on ne veut ou ne peut pas.

Une autre solution consiste à passer avant chaque conversion, en « en-Us » et revenir en « fr-FR » après, avec « My.Application.ChangeCulture ».

D?autres solutions existent dont celle ci.
C?est un code qui permet de définir le format d'affichage des nombres, issu de :
http://msdn2.microsoft.com/fr-fr/library/system.globalization.cultureinfo.numberformat(VS.80).aspx
et mis en pratique dans un exemple.
Là, on ne modifie pas les options du panneau de configuration, on en fait un clone avec les modifications que l?on désire et qui s?applique uniquement à la routine en cours d?exécution de l?application.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
140
Date d'inscription
mardi 25 novembre 2003
Statut
Membre
Dernière intervention
1 novembre 2010
5
Il est beau ce poisson, RENAUD34,
J'ai appliqué ton code, sur un TextBox nommé « tbPrixU » comme suit :

Private Sub tbPrixU_KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles tbPrixU.KeyPress
If e.KeyChar = ChrW(46) Then
e.KeyChar = ChrW(44)
End If
End Sub

Private Sub tbPrixU_Validated(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles tbPrixU.Validated
tbPrixU.Text = Format(CDbl(tbPrixU.Text), "#0.00")
End Sub

Ca fonctionne bien, mais je n'ai pas trouvé de solution pour une mise en forme, autre que celle proposée par la culture anglaise.
Je sais, je chipote, mais j'aimerais la virgule.
Je modifie ma source avec 2 exemples.
Messages postés
18
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
4 octobre 2007

on peut aussi changer le point en virgule en mettant dans la fonction "keypress" de la zone de saisie le code:

If KeyAscii 46 Then KeyAscii 44

(ou l'inverse pour passer de virgule à point)

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.