Module: VARIABLES. FORMATS DE SORTIE


Problem

5/5

Précision de sortie

Theory Click to read/hide

Spécificateurs de sortie
Pour générer des valeurs réelles, appelez simplement la méthode Console.Write ou Console.WriteLine :
  un double = 0,9999 ; Console.Write(a);  
Mais parfois, vous devez pré-formater la sortie des valeurs, il est pratique de le faire en utilisant la méthode String.Format, plus de détails ici.
Sortie avec une certaine précision
Pour formater les nombres fractionnaires, le spécificateur f est utilisé, le nombre après lequel indique combien de caractères seront après le séparateur. un double = 12,123 ; Console.WriteLine(String.Format("{0:f2}", a)); Le résultat sera 12,12, mais si vous utilisez la valeur 0,9999, un arrondi incontrôlé se produira et   1.00.

Par conséquent, l'algorithme suivant est utilisé pour supprimer les signes plutôt que d'arrondir :
1) multiplier la valeur d'origine par 10, autant de fois qu'il faut laisser de décimales ;
2) en utilisant la méthode   Math.Truncate, on ne laisse que la partie entière ;
3) divisez la valeur obtenue par 10, autant de fois qu'il vous faut de décimales.

Exemple de sortie avec une précision à deux décimales : 
un double = 0,9999 ; a = a * Math.Pow(10, 2); a = Math.Truncate(a); a = a / Math.Pow(10, 2);
 
Le type de séparateur lors de la sortie du résultat (point ou virgule) dépend des paramètres régionaux de l'ordinateur, donc pour toujours utiliser un point comme séparateur, vous devez modifier les paramètres régionaux en invariant, exemple résultant :
 
CultureInfo ci = new CultureInfo(""); un double = 0,9999 ; a = a * Math.Pow(10, 2); a = Math.Truncate(a); a = a / Math.Pow(10, 2); Console.WriteLine(a.ToString(ci));

Problem

Écrire un programme qui imprime la valeur d'une variable à 2 décimales.