C# 10 - Novidades da API Math


 Hoje vou apresentar as novidades da API Math disponíveis a partir do C# 10.

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:

Calculando Seno e Cosseno

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

Vamos calcular o seno e cosseno de um ângulo usando o método Math.SinCos:

Console.WriteLine("Cálculo do Seno e Cosseno\n");
Console.WriteLine("Informe o ângulo para calcular o: ");
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");

Console.ReadKey();

O resultado obtido é o seguinte:

Calculando a estimativa do recíproco de um número

Os recíprocos em matemática são inversos multiplicativos. Dois números são inversos se, quando multiplicados juntos, o produto for igual a 1; por exemplo, o recíproco de 2 é 1/2, porque 2 X 1/2 = 1.

Assim o recíproco de 5 é 1/5 que é igual a 0,2.

O recíproco de uma fração, ou número racional, é este número com o denominador ou numerador trocado. Então, o recíproco de 2/3 é 3/2.

O recíproco de um número irracional é 1 dividido por aquele número e, se o número é expresso com expoentes, o recíproco é expresso pelo mesmo número e o expoente, mas com o sinal do expoente trocado. Então, o inverso de 2^0.5 é 2^-0.5.

Vamos calcular a estimativa do recíproco de um número usando o método Math.ReciprocalEstimate.

Inclua o código abaixo na classe Program:

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}");
Console.ReadKey();

O resultado obtido é visto a seguir:

Calculando a estimativa da raiz quadrada recíproca de um número especificado

t

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}");
Console.ReadKey();

 

O resultado obtido é :

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.

Exemplo:

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 }");

Console.ReadKey();
 

Resultado:

a

mos conversados...

Referências:


José Carlos Macoratti