Module: VARIÁVEIS. FORMATOS DE SAÍDA


Problem

5/5

Precisão de saída

Theory Click to read/hide

Especificadores de saída
Para exibir valores reais, basta chamar o método Console.Write ou Console.WriteLine:
  duplo a = 0,9999; Console.Write(a);  
Mas às vezes você precisa pré-formatar a saída dos valores, é conveniente fazer isso usando o método String.Format, mais detalhes aqui.
Saída com certa precisão
Para formatar números fracionários, o especificador f é usado, o número após o qual indica quantos caracteres haverá após o separador. duplo a = 12,123; Console.WriteLine(String.Format("{0:f2}", a)); O resultado será 12,12, mas se você usar o valor 0,9999, ocorrerá um arredondamento descontrolado e   1,00.

Portanto, o seguinte algoritmo é usado para descartar sinais em vez de arredondamento:
1) multiplique o valor original por 10, quantas vezes forem necessárias deixando as casas decimais;
2) usando o método   Math.Truncate, deixamos apenas a parte inteira;
3) divida o valor resultante por 10, quantas vezes você precisar deixar casas decimais.

Exemplo de saída com precisão de duas casas decimais: 
duplo a = 0,9999; a = a * Math.Pow(10, 2); a = Math.Truncate(a); a = a / Math.Pow(10, 2);
 
O tipo de separador na saída do resultado (ponto ou vírgula) depende das configurações regionais do computador, portanto, para usar sempre um ponto como separador, é necessário alterar as configurações regionais para invariante, exemplo resultante:
 
CultureInfo ci = new CultureInfo(""); duplo a = 0,9999; a = a * Math.Pow(10, 2); a = Math.Truncate(a); a = a / Math.Pow(10, 2); Console.WriteLine(a.ToString(ci));

Problem

Escreva um programa que imprima o valor de uma variável com 2 casas decimais.