decimal milhas = 10;
decimal km = milhas * 1.60934M;
Console.WriteLine($"{milhas} milhas equivalem a {km} km");
decimal milhas = 10;
decimal km = milhas * 1.60934M;
Console.WriteLine($"{milhas} milhas equivalem a {km} km");
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.
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.$ facilita muito a leitura do código, permitindo que as variáveis milhas e km sejam inseridas diretamente no texto de saída.decimal, você garante que o resultado da conversão seja o mais fiel possível ao fator de multiplicação.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?