Bonjour à tous,

J'utilise une fonction qui retourne un booléen afin d'identifier si un nombre passé en paramètre ou non.

True lorsque le nombre est décimal et False lorsqu'il ne l'est pas.

Lorsqu'un nombre, ayant comme séparateur de décimal un point, est passé en paramètre, la fonction ci-dessous retourne FALSE si la variable frenchCulture est initialisée de cette façon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Dim frenchCulture As NumberFormatInfo = New CultureInfo("fr-FR", False).NumberFormat
En revanche, elle retourne TRUE, si la variable frenchCulture est initialisée de cette façon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Dim frenchCulture As NumberFormatInfo = New CultureInfo("en-EN", False).NumberFormat
Voici la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 ''' <summary>
        ''' Vérifie la validité du format des nombres
        ''' </summary>
        ''' <param name="nombreATraiter">Valeur à traiter</param>
        ''' <param name="allowBelow0">Détermine si l'entier peut être négatif</param>
        ''' <returns><c>True</c> si le format est value. <c>False</c> dans le cas contraire</returns>
        Private Function IsDecimal(ByVal nombreATraiter As String, ByVal allowBelow0 As Boolean) As Boolean
            Dim isDec As Boolean = False
            If nombreATraiter.IsVoid() Then
                isDec = False
            Else
                Dim frenchCulture As NumberFormatInfo = New CultureInfo("fr-FR", False).NumberFormat
                Dim result As Decimal
                frenchCulture.CurrencyDecimalSeparator = "."
                Dim ndStyles As NumberStyles = NumberStyles.AllowDecimalPoint
                If allowBelow0 Then
                    ndStyles = NumberStyles.AllowDecimalPoint Or NumberStyles.AllowLeadingSign
                End If
 
                isDec = Decimal.TryParse(nombreATraiter, ndStyles, frenchCulture, result)
            End If
 
            Return isDec
        End Function
A noter que le séparateur est défini de cette façon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
frenchCulture.CurrencyDecimalSeparator = "."
Est-il possible de garder le paramètre CultureInfo fr-FR et non en-EN ?

Merci d'avance pour l'aide,

Emilie