Dim myStr As String = "38"
Je veux que mon résultat soit 38.000
...
myStr = "6.4"
Je veux que mon résultat soit 6.400
Quelle est la meilleure méthode pour y parvenir? Je veux formater une variable string avec au moins trois décimales .
Utilisez FormatNumber :
Dim myStr As String = "38"
MsgBox(FormatNumber(CDbl(myStr), 3))
Dim myStr2 As String = "6.4"
MsgBox(FormatNumber(CDbl(myStr2), 3))
Jetez un oeil sur "Chaînes de format numérique standard"
float value = 6.4f;
Console.WriteLine(value.ToString("N3", CultureInfo.InvariantCulture));
// Displays 6.400
Donc si vous avez
Dim thirtyEight = "38"
Dim sixPointFour = "6.4"
Ensuite, la meilleure façon de les analyser en un type numérique est, Double.Parse
ou Int32.Parse
, vous devez conserver vos données tapées jusqu'à ce que vous voulez l'afficher à l'utilisateur.
Ensuite, si vous voulez formater une chaîne avec 3 décimales , faites quelque chose comme String.Format("{0:N3}", value)
.
Donc, si vous voulez un hack rapide pour le problème,
Dim yourString = String.Format("{0:N3}", Double.Parse("38"))
ferait.
En pseudo code
decpoint = Value.IndexOf(".");
If decpoint < 0
return String.Concat(value,".000")
else
return value.PadRight(3 - (value.length - decpoint),"0")
Si c'est une chaîne, conservez-la sous forme de chaîne. Si c'est un nombre, passez-le comme un.