1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
'Cette méthode retourne une chaine formatée en décimal avec un nombre de décimales fixes
'Le nombre de décimales attendues est passée en paramètre
'Remarque : Il est à noter que le décimal passé en paramètre contient un nombre de décimal
' supérieur au nombre de décimales passées en paramètre la chaine retournée
' correspondra à la valeur décimale arrondi au nombre de décimales spéciciée
'Remarque : Cette méthode est utilisé pour l'affectation de valeur au textBox liés à un MaskedEditExtender
' permettant de saisir des valeurs décimales
' En effet, quand on affecte une chaine à ce type de TextBox il est absolument nécessaire que
' le nombre de décimales correspondent toujours au nombre de décimales attendu par le MaskedEditExtender
' Cette fonction permet de faire cela
'Exemple : Appel de cette méthode avec les paramètres (45.32,3) / Résultat : 45.320
' Appel de cette méthode avec les paramètres (45.39,1) / Résultat : 45.4
Public Shared Function RetournerChaineFormatDecimalFixe(ByVal dPar_ValeurDecimale As Decimal, ByVal iPar_NombreDeDecimales As Int16) As String
Dim iLocal_CompteurBoucleWhileCreationFormat As Int64 '//§/Compteur utilise dans la boucle While de création du format
Dim sLocal_FormatAUtiliser As String '//§/Chaine contenant le format à utiliser
Dim sLocal_ValeurRetour As String = "" '//§/Valeur retournée par cette méthode
'Nous effectuons systématiquement un arrondi, au nombre de décimales spécifié,
'sur le Decimal passé en paramètre
dPar_ValeurDecimale = Decimal.Round(dPar_ValeurDecimale, iPar_NombreDeDecimales)
'Initialiser la chaine relative au format à utiliser
sLocal_FormatAUtiliser = "{0:00"
'Initialisation du compteur utilisé dans la boucle While
iLocal_CompteurBoucleWhileCreationFormat = 0
'Si le nombre de décimales de la chaine à retourner est > 0
If iPar_NombreDeDecimales > 0 Then
'On ajoute au format le symbole correspondant à la position de la décimale
sLocal_FormatAUtiliser = sLocal_FormatAUtiliser + "."
'Boucle d'ajout des zéros correspondants aux décimales
While iLocal_CompteurBoucleWhileCreationFormat < iPar_NombreDeDecimales
'Chaque zéro ajouté au format ici correspond à une décimale
sLocal_FormatAUtiliser = sLocal_FormatAUtiliser + "0"
'Incrémenter le compteur de boucle
iLocal_CompteurBoucleWhileCreationFormat = iLocal_CompteurBoucleWhileCreationFormat + 1
End While
End If
'Terminer le format à utiliser
'Au final nous devons donc avoir un format du type : "{0:00.00000}"
sLocal_FormatAUtiliser = sLocal_FormatAUtiliser & "}"
'Créer la chaine à retourner en utilisant ce format
sLocal_ValeurRetour = String.Format(sLocal_FormatAUtiliser, dPar_ValeurDecimale)
'//§/Retourner la chaine correctement formatée
Return sLocal_ValeurRetour
End Function |
Partager