C# 10 - Novidades na API Math
 Hoje veremos as novidades da API Math disponíveis com o .NET 6.

Para surpresa, o C# 10 trouxe novos recursos para a API Math, que geralmente não sofre alterações.

As novidades referem-se aos seguintes recursos:

Cálculo do seno e cosseno

Vamos criar um projeto Console (.NET Core) no VS 2022 e definir o código abaixo na classe Program:

Para calcular o seno e o cosseno a API Math dispõe dos métodos Math.Sin e Math.Cos. Agora temos também o método Math.SinCos e realiza o cálculo do seno e do cosseno :

    Console.WriteLine("Cálculo do Seno e Cosseno\n");

    Console.WriteLine("Informe o ângulo para calcular : ");
    var angulo = Convert.ToDouble(Console.ReadLine());

    var resultado = Math.SinCos(angulo);

    Console.WriteLine($"Valor do Seno    : {resultado.Sin}");

    Console.WriteLine($"Valor do Cosseno : {resultado.Cos}\n");

Resultado:

Parece que o novo método é um pouco mais lento do que usar cada método separadamente.

Cálculo da estimativa do recíproco de um número

O inverso multiplicativo ou recíproco de um número n, escrito como 1/n ou n-1 (n elevado a menos 1), é um número tal que multiplicado por n, têm-se como resultado a unidade (1). Em outras palavras, o recíproco de um número é igual a 1 dividido pelo número em questão.

O recíproco de uma fração simples x/y é y/x. Por exemplo, o recíproco de 2 é 1/2, porque 2 X 1/2 = 1. O recíproco de 10 é 1/10 ou 0,1.

A API Math apresenta dois novos métodos :

1- ReciprocalEstimate - Calcula a estimativa do recíproco de um número;	
    Console.WriteLine("Cálculo da estimativa do recíproco de um número\n");
   
    Console.WriteLine("Informe o número a calcular : ");
    var numero = Convert.ToDouble(Console.ReadLine());

    var resultado = Math.ReciprocalEstimate(numero);

    Console.WriteLine($"O valor obtido é igual a : {resultado}");

 

Resultado:
2- ReciprocalSqrtEstimate - Calcula a estimativa da raiz quadrada recíproca de um número;
    Console.WriteLine("Cálculo da estimativa da raiz quadrada recíproca de um número\n");
    Console.WriteLine("Informe o número a calcular : ");
    var numero = Convert.ToDouble(Console.ReadLine());

    var resultado = Math.ReciprocalSqrtEstimate(numero);

    Console.WriteLine($"O valor obtido é igual a : {resultado}");

Resultado:

Além destes novos métodos temos uma outra novidade relacionada com o método Math.DivRem que já existia e que calcula o quociente de dois números e também retorna o resto em um parâmetro de saída.

Ele foi aprimorado ainda mais no .NET 6 - em vez de retornar o restante como um parâmetro de saída, o método retorna uma tupla do quociente e o restante.

int resto;
var quociente = Math.DivRem(10, 3, out resto);

Console.WriteLine($"O quociente é : {quociente} e o resto é : {resto}");

Console.ReadKey();

Agora em vez de retornar o resto como parâmetro de saída, o método retorna uma tupla do quociente e do restante.

Console.WriteLine("Informe um numero: ");
var numero1 = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("\nInforme outro numero: ");
var numero2 = Convert.ToInt32(Console.ReadLine());

var resultado = Math.DivRem(numero1, numero2);

Console.WriteLine($"\nO quociente é {resultado.Quotient}");
Console.WriteLine($"O resto é : { resultado.Remainder }");

Resultado:

E estamos conversados.

Referências:


José Carlos Macoratti