Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Necesito ayuda! Codigo C# System.Math

revstratX

Bovino adolescente
Desde
15 Feb 2009
Mensajes
91
Usando el Método System.Math.Cos, me encontre con la siguiente dificultad:
Necesito saber por qe en las siguientes lineas de codigo, al ejecutarlas me da los resultados correctos.
Pero si ingreso los valores 90 o 270 (qe m deberia devolver 0) me regresa un valor muy peqeño.

Console.WriteLine("Write the angle you want to get the cosine from");
double cos = Double.Parse(Console.ReadLine()) * Math.PI / 180;
Console.WriteLine("the cosine is " + Math.Cos(cos));
Console.ReadLine();
al darle de valor 90, me devuelve un valor extremadamente peqeño : 6.12303176911189E-17, qe viene siendo lo mismo qe 6.12303176911189 x 10^-17, osea 0.0000000000000000612303176911189, cuando debería ser 0
 
Recuerda que todas estas funciones son interpretaciones de formulas matemáticas, y usan una tabla para sacar las proporciones, a menos que estén derivadas directamente de fortran tendrán errores muy pequeños, te sugiero que los calculos los hagas en una sola linea, junto con conversiones, para evitar perdida de decimales por asignacion.
Osease:

Console.WriteLine("Write the angle you want to get the cosine from");
double cos = Double.Parse(Console.ReadLine());
Console.WriteLine("the cosine is " + Math.Cos((cos * Math.PI / 180)));
Console.ReadLine();
 
Recuerda que todas estas funciones son interpretaciones de formulas matemáticas, y usan una tabla para sacar las proporciones, a menos que estén derivadas directamente de fortran tendrán errores muy pequeños, te sugiero que los calculos los hagas en una sola linea, junto con conversiones, para evitar perdida de decimales por asignacion.
Osease:

Console.WriteLine("Write the angle you want to get the cosine from");
double cos = Double.Parse(Console.ReadLine());
Console.WriteLine("the cosine is " + Math.Cos((cos * Math.PI / 180)));
Console.ReadLine();


El que tengas en una o varias líneas la recepción de los valores no importa, lo único que importa es el tipo de dato que los recibe.

El problema radica en que entre más grande de longitud sea tu tipo de dato (usas Double) ´más cálculos hará. Ahora ese problema viene desde hace mucho, si quieres un cálculo exacto usa una computadora con procesador RISK y NO una de punto flotante como Amd o Intel, las máquinas con procesador RISK están diseñadas para dar valores más reales, el detalle es que son más caras.

Fortran??? qué onda, si se sabe, no hay que inventar si no se investiga.
 
Volver
Arriba