web-dev-qa-db-fra.com

Chaîne 3 décimales

Exemple 1

Dim myStr As String = "38"

Je veux que mon résultat soit 38.000 ...


Exemple 2

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 .

9
Alex

Utilisez FormatNumber :

Dim myStr As String = "38"
MsgBox(FormatNumber(CDbl(myStr), 3))

Dim myStr2 As String = "6.4"
MsgBox(FormatNumber(CDbl(myStr2), 3))
15
GJKH

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
2
giacomelli

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.

2
Jodrell

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.

1
Tony Hopkinson