1
resposta

Minha resolução

decimal milhas = 10;
decimal km = milhas * 1.60934M;
Console.WriteLine($"{milhas} milhas equivalem a {km} km");

1 resposta

Olá, Isac! Tudo bem?

Mais uma resolução certeira! Você escolheu o tipo de dado perfeito para esse cenário: o decimal.

Diferente do double ou float, que são tipos de ponto flutuante binário e podem apresentar pequenas imprecisões em cálculos decimais, o decimal é um tipo de ponto flutuante de alta precisão. Ele é o padrão ouro quando lidamos com conversões que exigem exatidão, como medidas científicas ou valores monetários.

Análise Técnica da sua Resolução

  • Sufixo M: Você utilizou corretamente o sufixo M no valor 1.60934M. Em C#, sem esse sufixo, o compilador trataria o número como double, o que causaria um erro de compilação ao tentar multiplicar um decimal por um double.
  • Interpolação de Strings: O uso do $ facilita muito a leitura do código, permitindo que as variáveis milhas e km sejam inseridas diretamente no texto de saída.
  • Precisão: Ao usar decimal, você garante que o resultado da conversão seja o mais fiel possível ao fator de multiplicação.

Dica de Especialista: Formatando a Saída

Como o fator de conversão de milhas para quilômetros tem muitas casas decimais, o resultado pode acabar ficando muito longo no console. Você pode controlar quantas casas deseja exibir usando especificadores de formato dentro da própria interpolação:

// Exibe o resultado com apenas 2 casas decimais
Console.WriteLine($"{milhas} milhas equivalem a {km:F2} km");

O :F2 diz ao C# para formatar o número como "Fixed-point" com 2 casas decimais.

Isac, você sentiu facilidade em lembrar de usar o sufixo M ou o Visual Studio precisou te dar aquele "toque" com um sublinhado vermelho?