Bonsoir,
et pour l'esthétisme : pour ceux qui préfèrent par exemple "12,100" au lieu de "12.1"
Voici une autre façon de faire et l'explication dans le code.
Pour tester 3 TextBox, le 1 pour entrer la valeur et les autres pour visualiser le résultat et un Button pour lancer la procédure :
Public Class Form1
'*** Clonage des "Options régionales" du panneau de configuration.
' (CultureInfo représentant la culture de l'ordinateur).
Public maCI As Globalization.CultureInfo = Globalization.CultureInfo.CurrentCulture
Public maCIclone As Globalization.CultureInfo = CType(maCI.Clone(), Globalization.CultureInfo)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'*** Utilisation du clone pour modifier certains paramètres de la culture de base
' qui s'appliqueront à la culture du thread en cours.
' On accepte le "." comme séparateur décimal, pour les machines qui ont
' dans leur configuration, la culture française. (Dans cette config., la conversion
' de String en Décimal n'accepte pas le ".", comme d'ailleurs toutes les
' autres fonctions de conversion (CType,...), la fonction Parse,
' les mise en forme ToString.)
' (Voir Panneau de configuration --> Options régionales, date, heure et langue
' --> Options régionales et linguistiques --> Personnaliser (symbole décimal)).
' On pourra donc employer le "." du pavé numérique pour entrer un nombre
' à décimales.
'*** Pour la présentation des données, on concerve les paramètres de base, soit
' la "," comme séparateur décimal.
'*** En résumé, on utilise la culture clonée pour le traitement, et la
' culture de base de l'ordinateur pour la présentation.
maCIclone.NumberFormat.NumberDecimalSeparator = "."
Threading.Thread.CurrentThread.CurrentCulture = maCIclone
Dim d As Double = CDbl(TextBox1.Text)
TextBox2.Text = d.ToString("N3", maCI)
TextBox3.Text = CStr(Math.Round(d, 3))
End Sub
End Class