Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tutorial ensina sobre os tipos numéricos em C#. Você escreve pequenas quantidades de código e, em seguida, compila e executa esse código. O tutorial contém uma série de lições que exploram números e operações matemáticas em C#. Essas lições ensinam os conceitos básicos da linguagem C#.
Dica
Quando um bloco de snippet de código inclui o botão "Executar", esse botão abre a janela interativa ou substitui o código existente na janela interativa. Quando o snippet não inclui um botão "Executar", você pode copiar o código e adicioná-lo à janela interativa atual.
Explorar aritmética de inteiros
Execute o código a seguir na janela interativa.
int a = 18;
int b = 6;
int c = a + b;
Console.WriteLine(c);
O código anterior demonstra operações matemáticas fundamentais com inteiros. O int
tipo representa um inteiro, um número inteiro positivo ou negativo. Use o +
símbolo para adição. Outras operações matemáticas comuns para inteiros incluem:
-
-
para subtração -
*
para multiplicação -
/
para divisão
Comece explorando essas operações diferentes. Modifique a terceira linha para experimentar cada uma dessas operações. Por exemplo, para tentar a subtração, substitua o +
por um -
conforme mostrado na linha seguinte.
int c = a - b;
Experimente. Selecione o botão "Executar". Em seguida, tente a multiplicação *
e a divisão /
. Você também pode experimentar escrevendo várias operações matemáticas na mesma linha, se desejar.
Dica
Ao explorar C# (ou qualquer linguagem de programação), você comete erros ao escrever código. O compilador localiza esses erros e os reporta a você. Quando a saída contiver mensagens de erro, examine atentamente o código de exemplo e o código na janela interativa para ver o que corrigir. Esse exercício ajuda você a aprender a estrutura do código C#.
Explorar a ordem das operações
A linguagem C# define a precedência de diferentes operações matemáticas com regras consistentes com as regras que você aprendeu em matemática. Multiplicação e divisão têm precedência sobre adição e subtração. Explore isso executando o seguinte código na janela interativa:
int a = 5;
int b = 4;
int c = 2;
int d = a + b * c;
Console.WriteLine(d);
A saída demonstra que a multiplicação é executada antes da adição.
Você pode forçar uma ordem de operação diferente adicionando parênteses em torno da operação ou das operações que deseja executar primeiro. Adicione as seguintes linhas à janela interativa:
d = (a + b) * c;
Console.WriteLine(d);
Explore mais combinando várias operações diferentes. Substitua a quarta linha no código anterior por algo assim:
d = (a + b) - 6 * c + (12 * 4) / 3 + 12;
Console.WriteLine(d);
Você pode notar um comportamento interessante para números inteiros. A divisão de inteiros sempre produz um resultado inteiro, mesmo quando você espera que o resultado inclua uma parte decimal ou fracionária.
Experimente o seguinte código:
int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
Console.WriteLine(d);
Explorar a precisão e os limites de inteiros
Esse último exemplo mostrou que a divisão de inteiros trunca o resultado. Você pode obter o resto usando o operador resto, o %
caractere:
int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
int e = (a + b) % c;
Console.WriteLine($"quotient: {d}");
Console.WriteLine($"remainder: {e}");
O tipo inteiro de C# difere dos inteiros matemáticos de uma outra maneira: o int
tipo tem limites mínimos e máximos. Experimente o seguinte código para ver esses limites:
int max = int.MaxValue;
int min = int.MinValue;
Console.WriteLine($"The range of integers is {min} to {max}");
Se um cálculo produzir um valor que exceda esses limites, você terá uma condição de subfluxo ou estouro . A resposta parece quebrar de um limite para o outro. Para ver um exemplo, adicione estas duas linhas na janela interativa:
int what = max + 3;
Console.WriteLine($"An example of overflow: {what}");
Observe que a resposta está muito próxima do número inteiro mínimo (negativo). É o mesmo que min + 2
. A operação de adição transbordou os valores permitidos para inteiros. A resposta é um número negativo grande, pois um estouro "envolve" do maior valor de inteiro possível para o menor.
Há outros tipos numéricos com limites e precisão diferentes que você usaria quando o int
tipo não atende às suas necessidades. Vamos explorar esses tipos de números em seguida.
Trabalhar com o tipo Double
O double
tipo numérico representa um número de ponto flutuante de precisão dupla. Esses termos podem ser novos para você. Um número de ponto flutuante é útil para representar números nonintegrais que podem ser grandes ou pequenos em magnitude. Precisão dupla é um termo relativo que descreve o número de dígitos binários usados para armazenar o valor. Números de precisão dupla têm o dobro do número de dígitos binários como precisão única. Em computadores modernos, é mais comum usar precisão dupla do que números de precisão única. Números de precisão simples são declarados usando a float
palavra-chave. Vamos explorar. Execute o seguinte código e veja o resultado:
double a = 5;
double b = 4;
double c = 2;
double d = (a + b) / c;
Console.WriteLine(d);
Observe que a resposta inclui a parte decimal do quociente. Experimente uma expressão ligeiramente mais complicada com duplas. Você pode usar os seguintes valores ou substituir outros números:
double a = 19;
double b = 23;
double c = 8;
double d = (a + b) / c;
Console.WriteLine(d);
O intervalo de um valor duplo é maior que valores inteiros. Experimente o seguinte código na janela interativa:
double max = double.MaxValue;
double min = double.MinValue;
Console.WriteLine($"The range of double is {min} to {max}");
Esses valores são impressos em notação científica. O número antes do E
é o significando. O número após o E
é o expoente, como uma potência de 10.
Assim como números decimais em matemática, as duplas em C# podem ter erros de arredondamento. Experimente este código:
double third = 1.0 / 3.0;
Console.WriteLine(third);
Você sabe que 0.3
é 3/10
e não exatamente o mesmo que 1/3
. Da mesma forma, 0.33
é 33/100
. Esse valor está mais próximo 1/3
, mas ainda não é exato. Não importa quantas casas decimais você adicione, um erro de arredondamento permanece.
Desafio
Experimente outros cálculos com números grandes, números pequenos, multiplicação e divisão usando o double
tipo. Tente cálculos mais complicados.
Trabalhar com tipos decimais
Ainda há outro tipo: o tipo decimal
. O decimal
tipo tem um intervalo menor, mas maior precisão que double
. Vamos dar uma olhada.
decimal min = decimal.MinValue;
decimal max = decimal.MaxValue;
Console.WriteLine($"The range of the decimal type is {min} to {max}");
Observe que o intervalo é menor que o double
tipo. Você pode ver a maior precisão com o tipo decimal ao tentar o seguinte código:
double a = 1.0;
double b = 3.0;
Console.WriteLine(a / b);
decimal c = 1.0M;
decimal d = 3.0M;
Console.WriteLine(c / d);
Observe que a matemática que usa o tipo decimal tem mais dígitos à direita do ponto decimal.
Os números com sufixo M
são a maneira de indicar que uma constante deve utilizar o tipo decimal
. Caso contrário, o compilador assume o tipo double
.
Observação
A letra M
foi escolhida como a letra mais visualmente distinta entre as palavras-chave double
e decimal
.
Desafio
Escreva um código que calcula a área de um círculo cujo raio é de 2,50 centímetros. Lembre-se de que a área de um círculo é o raio quadrado multiplicado por PI. Uma dica: o .NET contém uma constante para PI, Math.PI que você pode usar para esse valor. Math.PI, como todas as constantes declaradas no System.Math
namespace, é um double
valor. Por esse motivo, você deve usar os valores de double
em vez de decimal
para esse desafio.
Você deve obter uma resposta entre 19 e 20.
Depois de experimentá-lo, abra o painel de detalhes para ver como você fez:
Experimente outras fórmulas se quiser.
Você concluiu o tutorial interativo "Números em C#". Você pode selecionar o link Branches e Loops para iniciar o próximo tutorial interativo ou visitar o site do .NET para baixar o SDK do .NET, criar um projeto em seu computador e continuar codificando. A seção "Próximas etapas" traz você de volta a esses tutoriais.
Você pode saber mais sobre números em C# nos seguintes artigos: